Обработчик для двух событий у разных объёктов
Два дня уже ищу не могу найти Подскажите пожалуйста такую конструкцию, в которой указываешь название элементов, на которых не делать блур.
|
если я правильно понял, то можно сделать примерно так:
<!doctype html> <html> <head> <meta charset="utf-8"> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $(".one").on("click", function() { // подключаем событие для всех элементов с классом one $(this).css({backgroundColor: "#f80"}); }); $(".two").off("click"); // отключаем событие для элемента с классом two }); </script> </head> <body> <div class="one"> one </div> <div class="one two"> two </div> <div class="one"> three </div> </body> </html> |
Как бы всё гораздо сложнее...
Фокус у меня находится на инпуте, так вот при клике на кнопку, которая рядом с этим инпутом я хочу выполнять одно действие, а просто при блюре инпута- другие. |
<!DOCTYPE html> <html> <input onblur=f()><button onmousedown=f1()>click</button> <script> var a=0; function f(){if(a)alert(11);else alert(444);a=0}; function f1(){a=1}; </script> |
Я пробовал такую конструкцию- она не работает: сначала срабатывает блюр у эллемента, а клик на кнопку уже после. вот такие дела.
|
Цитата:
|
Ааа... но этот способ тоже не подходит, т.к. mousedown не подходит для планшетов.
|
gearique,
я вот все никак не могу понять что конкретно вы хотите получить... Я так понимаю обработать клик до того как сработает событие блюр? Дык это не возможно, ибо клик всегда будет срабатывать позже. <input /><button>click</button> <script> document.addEventListener('blur', function(e) { if (e.target.nodeName === 'INPUT') { document.body.appendChild(document.createTextNode('blur|')); } }, true); document.querySelector('button').addEventListener('click', function(e) { document.body.appendChild(document.createTextNode('click|')); }, false); </script> |
Цитата:
<!DOCTYPE html> <html> <input onblur=f()><button onclick=f1() >click</button> <script> var a=0; function f(){setTimeout(function(){if(a)alert('click');else alert('blur');a=0},400)}; function f1(){a=1;}; </script> |
Спасибо! Работает!
Немного подправил и работает... выложить функцию, может кому пригодиться? |
Часовой пояс GMT +3, время: 07:58. |