JQuery选择器:当未单击某个子项时,将规则应用于元素
JQuery selectors: Apply rule to element when certain child is NOT clicked
所以我有一个父div,里面有不同的元素。现在我已经设置好了,所以当单击父div时,它会应用一个"选定"的css属性(只是高亮显示它)。但是,这个div中有一个anchor标记,如果单击了anchor,我不希望div高亮显示。
我的代码突出显示div
$(document).on("click",".playlist-row",function() {
var selected = $(this);
highlight(selected);
});
理想情况下,我希望它的行为如下:(只是伪代码)
$(document).on("click",".playlist-row",function() {
var selected = $(this);
if ($(".childElement) is not the part clicked) {
selectSongInPlaylist(selected);
}
});
有什么优雅的方法可以让这样的东西发挥作用吗?
您可以使用stopPropagation()http://api.jquery.com/event.stopPropagation/在子元素上,如$(".childElement")。单击(函数(e){e.停止传播();});以防止单击事件传播到父元素。您也可以检查event.target属性,如下所述http://api.jquery.com/event.target/
您需要防止点击事件冒泡到容器
捕获事件并使用event.stop传播
$(document).on('click', "a", function(event){
event.stopPropagation();
});
我假设我理解你的问题,所以我可能会这样做:
$(document).on("click", ".playlist-row", function(e) {
if (!$(e.currentTarget).is("a")) {
selectSongInPlaylist($(this));
}
}
相关文章:
- 在验证器中添加自定义规则以检查<ul>具有元素
- 新的javascript HTML元素不遵循css规则
- 循环使用CSS规则遍历数组,并将它们应用于元素
- 用程序从单个HTML元素中删除CSS样式规则
- 在javascript中创建元素时,CSS转换规则固有地被覆盖
- 超出父级的元素的特定规则's宽度
- Javascript.替换元素“<termref/>"用规则的“;文本”;
- MongoDB:如何使用特定规则查询$in中的特定元素
- Jquery 验证 - 向输入元素添加规则时出错
- 断言元素列表遵循带有 JavaScript 承诺的规则
- 将 CSS 样式规则转换为 HTML 元素(反之亦然)
- 在添加规则之前从元素 ID 中删除区分大小写
- 将不同的CSS规则添加到一组生成的元素中
- 有没有任何方法可以重置元素的CSS规则:after/:before
- 将javascript规则应用于克隆的元素
- 如何在没有jquery元素的情况下重写css规则
- JavaScript/CSS:向DOM添加元素和应用其CSS规则之间的延迟
- jquery验证(使用jquery验证插件)-根据单击的按钮激活特定元素的验证规则
- Jquery使用自定义验证规则验证任意HTML元素
- JQuery选择器:当未单击某个子项时,将规则应用于元素