0

我有一个包含一些文本和跨度的 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");
});
4

1 回答 1

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();
});

演示:小提琴

于 2013-09-26T02:50:20.670 回答