单击除动态创建的元素之外的html元素?

时间:2017-05-30 09:28:32

标签: javascript jquery click

我需要在除了div之外的html页面中触发click。但是div是在页面加载后动态创建的。我尝试过以下代码。

$('html').click(function(e) {   

    if(!$(e.target).hasClass('flyoutdiv') ){

    }

}); 

它仅适用于未动态创建的元素。 " flyoutdiv"是在页面加载后动态创建的。我需要在整个页面中触发click,除了该元素。是否有任何解决方案?

3 个答案:

答案 0 :(得分:2)

您需要将方法on用于动态创建的元素。

$('html').on('click', function(e) {

  if (!$(e.target).hasClass('flyoutdiv')) {

  }

});

答案 1 :(得分:2)

您需要将点击事件附加到flyoutdiv div,如下所示。

$(".flyoutdiv").on('click',function(e){e.stopPropagation();})

处理动态flyoutdiv您可以使用以下代码。

$("body").on('click',".flyoutdiv",function(e){e.stopPropagation();})

答案 2 :(得分:1)

创建flyoutdiv后,将事件监听器绑定到他。创建div后添加$('.flyoutdiv').click(function(){//your code here});

比在每次点击时搜索目标要好得多。