我建立了一个手风琴部分的网站,只要有人点击该网页的标题部分,点击处理程序就会放在
上$('.section h2').click
但是,当用户以管理员身份登录时,会有“EDIT”链接应用于标题,因此如果单击的区域不是“a.edit-link”,我只希望该部分展开。
我尝试了$('.section h2:not(a.edit-link)').click
...或$('.section h2').not('a.edit-link').click
之类的内容,但这些选项中的其他选项对我有用..
我错过了一些明显的东西吗?
答案 0 :(得分:0)
您可以使用event.stopPropagation()
执行此操作,如下所示:
$('.section h2').click(function() {
//do stuff
});
$('.section h2 a.edit-link').click(function(e) {
e.stopPropagation();
});
当点击a.edit-link
时,该点击不会冒泡到<h2>
父级,并且其click
处理程序不会触发。
或者,您可以检查处理程序中的事件目标,如下所示:
$('.section h2').click(function(e) {
if($(e.target).hasClass('edit-link')) return; //bomb out
//do stuff
});
答案 1 :(得分:0)
我个人没试过,但这是一个想法:
给管理员链接他们自己的css类
添加标题的点击处理程序后,为不展开该部分的编辑链接添加更具体的点击处理程序
确保链接处理程序