2015-10-26 9 views
0

Я сделал эффект размытия для DIV (используя TabIndex = 1), но позже я добавил вход внутри DIV:Размытие событие DIV не беспокоить вход нажмите событие

<div id="d1" tabindex='2'> 
    <input id="i1" type='text' tabindex='1'/> 
</div> 

Я добавил обработчик щелчка для ввода и нажмите + размытие обработчики для DIV:

$('#i1').click(function(e){ 
    alert($(e.target).is('#i1, input')); 
}); 

$('#d1').click(function(){ 
    alert('div clicked'); 
}); 

$('#d1').blur(function(e){ 
    alert($(e.target).is('#i1, input')); 

}); 

Но как вы можете попробовать, когда я нажимаю на DIV, а затем нажмите на входе только DIV событий произошло.

Нажмите событие, а затем эффект размытия.

Похоже, что он не видит ввода, когда эффект размытия контейнера div происходит.

Не могли бы вы посоветовать, как исправить это.

JSfiddle код здесь: http://jsfiddle.net/z1987/gpkro53o/

+0

Возможно, вы сможете добавить '.parent()' перед .blur(), чтобы исправить вашу проблему. '$ ('# d1'). parent() .blur (function (e) {...}' – NightOwlPrgmr

ответ

0

это видеть вход, но бдительная функциональность странно. проверьте консоль этого демо: http://jsfiddle.net/gpkro53o/1/

также, вы хотите добавить e.stopPropagation() к введенному click событие, так что это обыкновение запускают div события

журнал консоли, когда вы нажмете на DIV, а затем ввод это:

div clicked 
div blurred 
input 
+0

Спасибо за ответ. Но, возможно, вы знаете, как избежать эффекта размытия в этом случае. Я думал, что вход является частью из div, и он не должен вызывать событие blur – z1987

+0

oh, поэтому, когда вы нажимаете на div, а затем на вход, вы не хотите «div blurred», вам нужен только «вход»? – indubitablee

+0

да. Я хочу, например, скрыть div но если я нажимаю на вход, я не хочу скрыть этот div. – z1987