Привязка события jquery ко всем текстовым элементам в div

0

У меня есть 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");
});

http://jsfiddle.net/RfpvP/

одним из решений может быть привязка onmouseup/onkeyup только к текстовым элементам. Интересно, как я могу это сделать с помощью jquery. что-то вроде:

$("div").on("keyup mouseup", "text-only-selector", function () {
    alert("div keyup mouseup");
});
Теги:
binding
events
selector

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

Демо: скрипка

Ещё вопросы

Сообщество Overcoder
Наверх
Меню