当满足第一个if条件时,if中的if条件总是返回true。我知道这一点,因为它每次满足第一个if条件时都附加相同的div。我的JS知识有限;它可能是我遗失的明显事物。但是,在我看来,在第二个if语句被满足并执行之后,它的条件不应再次满足。 有谁知道是什么原因引起的? 任何帮助将不胜感激。
if (portfolioImg.attr('src') == 'image.png')
{
if (zoomImgHolder.width() != '300px')
{
zoomImgHolder.append('<div id="myContent"></div>');
zoomImgHolder.css(
{
'width' : '300px',
'height' : '120px'
});
swfobject.embedSWF(
"swfobject/test.swf",
"myContent",
"300",
"120",
"9.0.0",
"expressInstall.swf");
zoomImgHolder.vAlign();
}
else
{
$('#myContent').css(
{
'visibilty' : 'visible'
});
}
}
答案 0 :(得分:6)
As the documentation explains:
.css(width)
和.width()
之间的区别在于后者返回无单位像素值(例如,400
),而前者返回单位完整的值(例如,400px
)。
.width()
始终返回一个数字,<any number>
永远不会等于300px
。
答案 1 :(得分:2)
jQuery中的width()函数返回一个整数值。因此,它永远不会等于字符串'300px'。
稍微修改一下你的代码:
if (zoomImgHolder.width() != 300)
答案 2 :(得分:2)
.width()
返回一个数字,而不是字符串:
> 300 == '300px'
false
只需将其与300
进行比较:
if (zoomImgHolder.width() != 300) {