2016-04-25 52 views
0

我需要的時候和項目失去其焦點模糊事件觸發時,孩子得到集中

基本上,我有這樣的事情

<div tabindex="1"> 
    <h1>title 1</h1> 
</div> 

<div tabindex="2"> 
    <h1>title 2</h1> 

    <textarea></textarea> 
</div> 

JS執行一些動作:

$('div').blur((e) => { console.log('blur');}); 

DEMO

現在,當您在div之間切換時,它的工作原理類似於魅力,但是當第二個div有焦點,並且你點擊child-textarea時觸發了一個blur事件。這不是我想要的,因爲我們仍然在同一個分區內。我怎樣才能解決這個問題,當點擊在div之外時只會觸發模糊事件?

回答

1

一個元素已被聚焦,那麼最後一個元素將會引發事件'模糊'。 您可能需要設計一劈爲它......是這樣的:因爲模糊事件在第一集中,然後被事件觸發

$('div').blur((e) => { 
    setTimeout(function() { 
     if(!$('textarea').is(':focus')){ 
      console.log('blur'); 
     } 
    }, 100); 
}); 

的setTimeout是很重要的。

+0

我已經在[demo](https://jsfiddle.net/g6f1t0v1/5/)中複製了你的代碼,但是當te textarea有焦點並且你點擊了它的容器div之外時,我沒有看到模糊事件 –

相關問題