$('#myDiv').click(function (evt) {
if (evt.target.tagName != "A") {
alert('123');
}
// Also possible if conditions:
// - evt.target.id != "ancherComplaint"
// - !$(evt.target).is("#ancherComplaint")
});
$("#ancherComplaint").click(function () {
alert($(this).attr("id"));
});
阻止来自锚点点击监听器的事件传播 → jsFiddle
$("#ancherComplaint").click(function (evt) {
evt.stopPropagation();
alert($(this).attr("id"));
});
:not(#ancherComplaint)
这是不必要的,因为没有具有类 .expandable-panel-heading 和 ID 为 #ancherComplaint
的元素。
我猜你想要阻止锚点的事件。但这种方式行不通,因为你和我的选择器都选中了同一个 DIV 元素。在调用监听器时,选择器不会产生影响;它只设置应注册监听器的元素列表。由于这个列表在两个版本中是相同的,所以不存在差异。
event.target
是否是<div>
元素(使用一个if
语句)即可。没有必要向<a>
元素添加另一个事件处理程序,这是不必要的额外处理程序和额外工作。 - Andy E