У меня есть div, который содержит некоторые тексты и промежутки. Я хочу захватить все кнопки мыши/клавиатуру на текстах и все 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");
});
одним из решений может быть привязка onmouseup/onkeyup только к текстовым элементам. Интересно, как я могу это сделать с помощью jquery. что-то вроде:
$("div").on("keyup mouseup", "text-only-selector", function () {
alert("div keyup mouseup");
});
Попытайтесь предотвратить распространение события из элемента 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();
});
Демо: скрипка