2013-03-14 24 views
1

当满足第一个if条件时,其中的if条件总是返回true。我知道这一点,因为它会在每次满足第一个条件时附加相同的div。我有限的JS知识;这可能是明显的,我错过了。然而,在我看来,在第二条陈述得到满足和执行之后,这种情况不应该再次满足。 有没有人有任何想法可能会造成这种情况? 任何帮助,将不胜感激。为什么如果条件总是正确的(JS)?

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' 
     }); 
    } 
} 
+1

''visibilty':'visible''也有一个错字。 – 2013-03-14 23:38:10

回答

6

As the documentation explains:

.css(width).width()之间的区别是,后者返回一个无单位的像素值(例如,400),而前者返回带单位完整的值(例如,400px)。

.width()总是返回一个数字,并<any number>永远等于300px

2

jQuery中的width()函数返回一个整数值。因此,它不可能等于字符串'300px'。

只需修改您的代码位:

if (zoomImgHolder.width() != 300) 
2

.width()返回一个数字,而不是字符串:

> 300 == '300px' 
false 

只是把它比作300

if (zoomImgHolder.width() != 300) { 
相关问题