Javascript 将单击绑定到jquery中的div而不带子项<;a>';s
我有一个div,其中包含一些其他div和一些Javascript 将单击绑定到jquery中的div而不带子项<;a>';s,javascript,jquery,html,Javascript,Jquery,Html,我有一个div,其中包含一些其他div和一些 我正在将一个click处理程序绑定到此父div,但是如果单击该div中的,它也会触发该处理程序。我尝试将另一个单击处理程序绑定到这些,并使用事件.stopPropagation(),但这似乎不起作用 有什么想法吗?您可以通过target.nodeName检查单击的元素 $("#parent *").on("click", function(e) { if ( e.target.nodeName.toLowerCase() == 'a' ) {
我正在将一个click处理程序绑定到此父div,但是如果单击该div中的
,它也会触发该处理程序。我尝试将另一个单击处理程序绑定到这些
,并使用事件.stopPropagation()
,但这似乎不起作用
有什么想法吗?您可以通过target.nodeName检查单击的元素
$("#parent *").on("click", function(e) {
if ( e.target.nodeName.toLowerCase() == 'a' ) {
e.stopPropagation();
}
... your original code ...
});
$("div").click(function(e){
if(e.target.nodeName == "div" $(e.target).hashClass('validDiv')){
// do stuff
}
else{
return false;
}
});
您可以通过target.nodeName检查单击的元素
$("div").click(function(e){
if(e.target.nodeName == "div" $(e.target).hashClass('validDiv')){
// do stuff
}
else{
return false;
}
});
你可以这样做。
$('div, a').click(function(e) {
if($(this).is('a')) return false;
console.log('click');
});
你可以做这样的事情。
$('div, a').click(function(e) {
if($(this).is('a')) return false;
console.log('click');
});
我首选的方法是将点击事件“劫持”到单独的函数中。由于将首先触发
链接,因此您可以让该链接在
onclick检查的页面中设置一个布尔值,如果它检测到以前的单击,只需让该链接返回false即可
var linkClicked = false;
function LinkClick(something)
{
linkClicked = true;
// Do something
}
function DivClicked(something)
{
if (linkClicked)
{
linkClicked = false;
return false;
}
// Do something else
}
我首选的方法是将点击事件“劫持”到单独的函数中。由于将首先触发
链接,因此您可以让该链接在
onclick检查的页面中设置一个布尔值,如果它检测到以前的单击,只需让该链接返回false即可
var linkClicked = false;
function LinkClick(something)
{
linkClicked = true;
// Do something
}
function DivClicked(something)
{
if (linkClicked)
{
linkClicked = false;
return false;
}
// Do something else
}
如果只希望绑定元素触发处理程序,请将其放在处理程序的顶部
if (this !== e.target)
return;
现在,如果单击任何嵌套元素,代码将立即返回。(不要忘记为处理程序定义
e
参数。)如果您只希望绑定元素触发处理程序,请将其放在处理程序的顶部
if (this !== e.target)
return;
现在,如果单击任何嵌套元素,代码将立即返回。(别忘了为处理程序定义e
参数。)这里有一个小问题:
这是非常基本的——因为我不知道您当前的代码是什么——但我没有发现StopRopagation()有任何问题
为了进行实验,如果您删除e.stopPropagation()
您将看到,当您单击一个链接时,它首先启动该函数,然后启动div的函数。这里有一个提琴:
这是非常基本的——因为我不知道您当前的代码是什么——但我没有发现StopRopagation()有任何问题
为了进行实验,如果删除
e.stopPropagation()
,您将看到当您单击一个链接时,它首先触发该函数,然后是div的函数。请发布您迄今为止尝试过的相关代码。是否忘记将事件
参数传递给上的单击处理程序请发布您迄今为止尝试过的相关代码。是否忘记将事件
参数传递给上的单击处理程序