2012-01-23 36 views
1

我在執行下面的代碼中的slideDown()函數時遇到了一些麻煩。我使用live()函數,因爲html是動態添加的。jquery選擇器發現,但不能在live()函數內工作

當我控制檯登錄elem var它返回的HTML,所以jquery找到它,但不執行slideDown()就可以了。它只是不下滑(也沒有錯誤,fadeIn()和show()函數也不能工作)。

有沒有人知道這裏有什麼問題?它真的開始困擾我

$(".werkwijze").live('click', function(event) { 

    var num = $(this).attr('id'); 

    num = new String(num); 
    num = num.split('_'); 

    var elem = $("#uitklap_"+num[2]); 

    if(elem.is(':visible')){ 
     console.log(21); 
     elem.slideUp(); 
    }else{ 
     console.log(22); 
     elem.slideDown(); 
     //$(".uitklapper").slideUp(); 

    } 

}); 
+0

即使沒有發現任何東西,jQuery總是返回一個對象。你確定你的元素被發現?檢查'elem.length'不等於零。 –

+0

它只是在這裏工作:http://jsfiddle.net/BWaRk/ Bytheway,你可以更好地使用新的['.on()'](http:/api.jquery.com/on/)函數。 '.live()'被破譯 –

回答

1

你的代碼應該可以正常工作。嘗試使用slideToggle它做同樣的事情,切換顯示/隱藏與滑動效果。

$(".werkwijze").live('click', function(event) { 

    var num = $(this).attr('id'); 

    num = new String(num); 
    num = num.split('_'); 

    $("#uitklap_"+num[2]).slideToggle(); 
}); 
+0

這也行不通。我重複檢查,但是當我記錄'$(「#uitklap _」+ num [2])時,它確實返回了一個包含正確html的對象。 該代碼對我來說也很好,我可能需要開始尋找其他地方找到問題。 – Boyd

相關問題