2011-10-24 45 views
1

我想在jQuery中創建一個監聽器類的東西。我想要做的就是檢查所有的時間,如果divs margin-left == 200px,然後發起一個事件。 但我不知道該怎麼做。 也許這更好,div調用事件函數,當它的margin-left == 200px,但我甚至不確定,如果這是可能的。火災事件,如果margin-left == 200px;

任何幫助將不勝感激。

+2

可能的複製http://stackoverflow.com/questions/1397251/event-detect-when-css -property-changed-using-jquery – etuardu

回答

4

以下函數將每隔1秒檢查一次具有類elementClass的元素是否將margin-left設置爲200px。如果是這樣,將觸發alert(作爲示例)。

$(document).ready(function(){ 
    setInterval(function(){ 
     if ($(".elementClass").css("marginLeft")=='200px'){ 
     //do something here 
     alert("margin is 200px"); 
     } 
    }, 1000); 
}); 

然而,這個代碼就觸發事件每秒的margin-left200px。下面將只觸發事件的第一時間因素已與200像素保證金左檢測:中

var eventtrig = 0; 
$(document).ready(function(){ 
    setInterval(function(){ 
     if ($(".elementClass").css("marginLeft")=='200px' && eventtrig=0) { 
     //do something here 
     alert("margin is 200px"); 
     eventtrig=1; 
     } 
     else { 
     eventtrig=0; 
     } 
    }, 1000); 
}); 
+0

這會做到最好的解決方案。但我不確定是否應該換成'margin-left'。 – OptimusCrime

+0

@OptimusCrime - 對於'.css(「marginLeft」)'?我想我已經以正確的方式做到了這一點。看到在jquery的例子http://api.jquery.com/css/ – Curt

+0

他們都會工作。只是認爲使用正確的CSS屬性更容易,所以jQuery不必首先解析它。 – OptimusCrime

0

您可以通過執行setinterval()(比如說1秒)來檢查「所有的時間」,然後在時鐘事件的處理程序中檢查div的左邊距,或者alert()何時/ 200.

編輯:作爲一個信息點:每隔一段時間檢查一次 - 即每秒一次 - 被稱爲「輪詢」的過程。