2013-02-28 31 views
1

這裏是一個jsFiddle showing the problem如果width == 200像素運行功能

我不知道爲什麼這不起作用:

if ($('#menu').width() == '200px') { 
    alert("what"); 
} 

我想完成的動畫時,出現一個警告。所以我認爲我可以說,動畫完成後,元素的寬度爲200px,它會顯示警報。

+1

哦,你看,如果聲明發生在動畫完成之前,因此它永遠不會是真實的。而應該添加一個回調'.animate'動畫完成時運行。 '.animate({選項},callbackFunction參數)' – 2013-02-28 19:49:04

回答

2

檢查更新的小提琴。我所做的是增加了一個「回調」功能,在執行時的動畫完成。

$(this).stop().animate({ width: "200px" }, 250, 
    function(){if ($('#menu').width() == '200') { alert("what"); } /* Callback Function */ 
}); 
5

1)你檢查的值在動畫完成之前。

2)你寬度值將是 「200」 而不是 「200像素」

這裏是jQuery文檔。您需要在代碼的回調部分執行檢查。

$('#clickme').click(function() { 
    $('#book').animate({ 
    opacity: 0.25, 
    left: '+=50', 
    height: 'toggle' 
    }, 5000, function() { 
    // Animation complete. <---- your value check code goes here 
    }); 
}); 
1

.width()應該返回一個數字,而不是一個 「###像素」 的價值,嘗試if ($('#menu').width() == 200) {