jquery事件绑定到div中的所有文本元素

时间:2013-09-26 02:43:07

标签: jquery events binding selector

我有一个包含一些文本和跨度的div。我想捕获文本上的所有mouseup / keyup,以及跨越所有dblclick。问题是mouseup / keyup在dblclick之前被触发了。看下面的代码:

<div>text1 text2 <span>text3</span> text4 <span>text5</span>

span {background:grey}

$("div").on("keyup mouseup", function () {
    alert("div keyup mouseup");
});
$("span").on("dblclick", function (event) {
    alert("span dblclick");
});

http://jsfiddle.net/RfpvP/

其中一个解决方案可能是将onmouseup / onkeyup仅绑定到文本元素。我想知道如何用jquery做到这一点。有些东西:

$("div").on("keyup mouseup", "text-only-selector", function () {
    alert("div keyup mouseup");
});

1 个答案:

答案 0 :(得分:2)

尝试阻止来自span元素的事件传播

$("div").on("keyup mouseup", function () {
    console.log("div keyup mouseup");
});
$("span").on("dblclick", function (event) {
    console.log("span dblclick");
});
$("span").on("keyup mouseup", function (event) {
    event.stopPropagation();
});

演示:Fiddle