jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – 如何在单击div div时取消绑定父div的click事件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

嗨,当我点击孩子addCompany_map时,不应该调用父addCompaniesModal …我做过这样的事情……但是由于某种原因它没有工作..父母div在点击儿童时被选中可以请一些人解释我的解决方

$(document).on('click','#addCompany_map',function (e) {
    e.stopPropagation();
});

$('#addCompaniesModal').click(function(){
});
最佳答案
事件传播从子元素发生到父元素.

看起来您的第一行似乎是处理子div上的单击,但是您指定它的方式实际上处理文档级别的单击(因为您的选择器是$(文档))并且它只调用方法,如果它发生在子div(on(‘click’,’#addCompany_map’部分).由于该文件是addCompaniesModal div的父级,因此它的click handler将在addCompaniesModal div上使用之后触发.

为了使其工作,您需要将代码更改为:

$('#addCompany_map').click(function (e) {
  e.stopPropagation();
});

$('#addCompaniesModal').click(function(){

});

编辑:

我在你的一些评论中看到你使用$(document).on(‘click’,…方法的主要原因是因为你是动态添加子div.

在这种情况下,有两种可行的方法来处理您的问题.

第一种方法是让你动态添加子div处理程序,并在删除时取消绑定.你可以使用这种方法

function dynamicallyAddChildren(){
  var oldChildDiv = $('#addCompany_map');
  if (oldChildDiv.length > 0)
    oldChildDiv.off('click',handleChildDiv);
  // remove old child if needed and add new child divs
  newChildDiv.on('click',handleChildDiv);
}

function handleChildDiv(e){
  //do something
  e.stopPropagation();
}

$('#addCompaniesModal').click(function(){
});

第二种方法是使用$(document).on(‘click’,…方法同时使用child和parent divs:

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

$(document).on('click','#addCompaniesModal',function(){
});​

大佬总结

以上是大佬教程为你收集整理的javascript – 如何在单击div div时取消绑定父div的click事件全部内容,希望文章能够帮你解决javascript – 如何在单击div div时取消绑定父div的click事件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: