2014-02-05 197 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

相关问题