Обработчик для двух событий у разных объёктов
Два дня уже ищу не могу найти Подскажите пожалуйста такую конструкцию, в которой указываешь название элементов, на которых не делать блур.
|
если я правильно понял, то можно сделать примерно так:
<!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, время: 03:35. |