2014-02-05 196 views
0

爲移動版本的網站我使用jQuery在另一個div(複選框元素)內創建一個div元素(關閉按鈕):jQuery /附加div元素在另一個元素和目標/控制父元素

var $newDiv = $("<div/>") 
       .addClass("closebtn") 
       .html("Close [X]"); 
    $(".checkbox_elements").prepend($newDiv); 

這工作得很好,但是當我添加點擊功能向內側(關閉按鈕)的股利,我不能「隱藏」父DIV(複選框元素):

$(".closebtn").click(function(){ 
    $(".checkbox_elements").css("display", "none"); 
    //or 
    $(this).prev(".checkbox_elements").css("display", "none");  
    }); 

當我附上關閉按鈕複選框元素div以外的任何其他元素它工作正常。 如何讓點擊功能在複選框元素div容器內工作?

感謝您的支持!

回答

2

由於按鈕(closebtn)動態添加,你需要嘗試event delegation

$('.checkbox_elements').on('click', ".closebtn", function() { 
    $(".checkbox_elements").css("display", "none"); 
    //or 
    $(this).parent(".checkbox_elements").css("display", "none"); 
}); 
+0

非常感謝你,阿倫。當我使用這個事件委託時,checkbox_elements div「閃爍」就像被選中一樣,但仍然可見。 – Bernhard

+0

@ user3277479你可以幫助重新創建問題http://jsfiddle.net/arunpjohny/3HQSt/1/ –

+0

感謝您的支持!我的設置如下所示:http://jsfiddle.net/3HQSt/6/移動環境很難重建。我猜css:懸停狀態與jquery css狀態相矛盾時,關閉按鈕放置在父元素內?您以前的解決方案在「乾淨」環境中工作正常。 – Bernhard

相關問題