Почему mouseup срабатывает 3 раза за один выбор текста?
Я хочу вызывать функцию после того как был выделен текст на странице.
Делаю так:
$('*').on('mouseup', function( e ) {
switch ( e.which ) {
case 1:
console.log( 'вызываем функцию' );
break;
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body>
<p>текст для тестирвания</p>
</body>
Как видите функция вызывается три раза.
Почему так? Как это предотвратить?
Ответы (1 шт):
Автор решения: Pilaton
→ Ссылка
Используя * в качестве селектора, ваша функция будет срабатывать на всем документе, на каждом уровне вложенности, что и происходит.
Если указать в качестве селектора, непосредственно селектор в котором находится текст, срабатывать будет один раз, как и нужно вам.
$('p').on('mouseup', function( e ) {
switch ( e.which ) {
case 1:
console.log( 'вызываем функцию' );
break;
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body>
<p>текст для тестирвания</p>
</body>