2012-11-28 30 views
-1

可能重複:
Fire jQuery event on div change如何測試jQuery選擇器條件是否超過2次?

我用這個小插件來觀看在HTML的變化:https://github.com/jacobrelkin/jquery-watcher

這工作得很好,問題是我需要的if condition驗證是否超過2次,理由是當圖庫加載時,它左右移動會創建-moz-grabbing條件兩次onload。

我試圖做

if( $('#gallery-1').has('div').css('cursor', '-moz-grabbing') > 2) 
    if( $('#gallery-1').has('div').css('cursor', '-moz-grabbing').length > 2) 

我也試過把它放在一個變量然後做> 2

以上都不似乎工作不知道我做錯了嗎?

$('.sliderContainer').watch('innerHTML', function() { 
    if( $('#gallery-1').has('div').css('cursor', '-moz-grabbing')) { 
     console.log($('#gallery-1').has('div').css('cursor', '-moz-grabbing')); 
     $('#collapse_content_1').toggleClass('collapse_inner_off'); 
    } 
}); 
+0

檢查供應商前綴可能不是最好的主意......如果用戶使用Chrome,該怎麼辦? – ahren

+0

我會看看導致HTML改變的JavaScript。看最後的結果不是一個好主意。 – Blender

+1

該插件正在使用'setInterval(...,700);'進行輪詢。謹慎使用或嘗試不同的方法。 –

回答

1

.css('cursor', '-moz-grabbing')實際上樣式表規則。您可能想要使用.filter

$('#gallery-1').has('div').filter(function() { 
    return $(this).css('cursor') == '-moz-grabbing'; 
}).length > 2 
+0

是if條件嗎?對不起,對jQuery很新穎 – Grundizer

+0

是的,你可以把它放在'if()' –

+0

,不幸的是.length> 2沒有做它應該做的事情,它仍然加載條件不到2倍 – Grundizer