2013-03-14 58 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) { 
相關問題