jQuery功能在Chrome中不起作用:/
任何人都可以帮我解决这个问题吗? 代码zip是在这里:(取链路断开)jQuery功能在Chrome中不起作用:/
我已经一切有效而Chrome 仍然计算元素完全错误(9每10倍......)的高度...
嗯,从技术上说它确实如此。
$(document).ready(function() {
function resizeIt() {
var extDiv = $('#externalWrapper').height();
var wrapper1 = $('#wrapper1').height();
var wrapper2 = $('#wrapper2').height();
var wrapper3 = $('#wrapper3').height();
$('#wrapper1-mid').css({'height':extDiv - ($('#wrapper1-top').height()+$('#wrapper1-bottom').height())-4});
$('#wrapper2').css({'marginTop':extDiv-wrapper2});
$('#wrapper3-mid').css({'height':extDiv -($('#wrapper3-top').height()+$('#wrapper3-bottom').height())+1});
if($('ul#related-linklist > li').size() > 15) {
$('#spacer').attr({'height':(wrapper2-250)});
$('#product-image').css({
'marginTop':0,
'marginLeft':0
});
}
}
resizeIt();
});
所以这是我的代码,在Chrome中,它根本没有正确调整边距/高度。但在Safari浏览器中工作正常..
IE/Firefox不受影响。
更新:你是对的,不需要在值的末尾添加'px'。但我已经更新了下面的代码以使用window.load
,因为我认为这可能是问题所在。
当使用css
您应该包括px
底。此外,你有一个height
属性应该是css
(这是未经测试):
$(window).load(function() {
function resizeIt() {
var extDiv = $('#externalWrapper').height();
var wrapper1 = $('#wrapper1').height();
var wrapper2 = $('#wrapper2').height();
var wrapper3 = $('#wrapper3').height();
$('#wrapper1-mid').css({'height':extDiv - ($('#wrapper1-top').height()+$('#wrapper1-bottom').height())-4 + 'px' });
$('#wrapper2').css({'marginTop':extDiv-wrapper2 + 'px' });
$('#wrapper3-mid').css({'height':extDiv -($('#wrapper3-top').height()+$('#wrapper3-bottom').height())+1 + 'px' });
if($('ul#related-linklist > li').size() > 15) {
$('#spacer').css({'height':(wrapper2-250) + 'px' });
$('#product-image').css({
'marginTop':0,
'marginLeft':0
});
}
}
resizeIt();
});
嘿,谢谢你的代码,依然没有改变我害怕 - 还有,我的印象是'px'不是真的需要吗? – 2010-09-17 11:28:23
如果你忽略它,jQuery将为你添加'px' – 2010-09-17 11:29:54
在CSS中需要px(或其他单位),除非值为零。需要px的原因是因为还有其他几个可能的单元,CSS和JQuery都不能确定你的意思。 – Spudley 2010-09-17 11:30:35
在你的jsfiddle链接的HTML是有点乱,这可能是你的问题的根源。
您有几个未封闭的<img>
元素,顶部还有一个额外的<html>
,以及多个共享相同ID的元素。您还有一个嵌套在<span>
内的<div>
,这是无效的。
http://infohound.net/tidy/是用于验证&清理HTML的有用工具。
是的我知道了,我已经整理过了 - 我说JSFiddle不会工作,因为我不能释放所有的HTML(并且我现在也列出了自闭标签) – 2010-09-17 14:05:05
没有这个例子证明了这个问题,实际上很难诊断它。它不需要是整个页面,但是仍然显示问题的示例子集是必需的。 – RickF 2010-09-17 14:20:21
我已经添加了尽可能多的HTML,尽可能不牺牲客户端的机密性...... – 2010-09-17 14:42:37
我注意到,在Chrome有时事情定位有点过了,这是因为WebKit渲染引擎的可能性最大。我在过去所做的工作就是嗅探Chrome并为任何受影响的对象('chrome'或'webkit'或其他)编写自定义类,然后编写特定于这些对象的代码。
这个想法承认很烂,但它是一个似是而非的解决方法/黑客,如果你现在需要这个工作。
您运行的是哪个版本的Chrome? – Toby 2010-09-17 15:54:58
我的Chrome版本是:6.0.472.53 – 2010-09-17 15:56:47