2016-05-17 13 views
0

親div内に2つの子入力があります。ユーザーが親要素を終了するとイベントをトリガーしたいのですが、ユーザーがある子供から別の子に直接移動したときではありません。この例では、私は別々の入力に日付と時刻を入力するようユーザーに求めています:親要素を終了した後の子イベントトリガー

<div id="form"> 
    <div id="dateTime"> 
    <input id="date"> 
    <input id="time"> 
    </div> 
</div> 

なしの成功と次のように私は「.focusout」と「.blur」を使用して試してみました - そのことで私はイベントの意味しますユーザが「時間」からタブアウトし、親の「dateTime」divを完全に終了するまで待つのではなく、「日付」から「時間」にユーザがタブするときにトリガされる。

$("#form").on('focusout', '#dateTime', function() { 
    alert ('User has exited the "dateTime" div.'); 
}); 
$("#form").on('blur', '#dateTime', function() { 
    alert ('User has exited the "dateTime" div.'); 
}); 

HTML構造またはJQueryの使用に問題がありますか?

+0

を動作するはずだと思うhttp://stackoverflow.com/a/7385673/5549391 – agDev

+1

感謝を見てみましょう。そこでの頑強な議論は、伝播の有用性と限界を理解するのに役立ちました。 – runner

+0

それは常に「ボトムアップ」なので、次の関数をトリガする前に入力要素が空であるかどうかを簡単にテストするアプローチを変更しました。乾杯 – runner

答えて

0

私はこれをまだ試していないが、私は、これは

$("#dateTime").focusout(function() { 
    if ($(this).has(document.activeElement).length === 0) { 
    alert('User has exited the "dateTime" div.'); 
    } 
}); 
+0

上記のコメントを参照してください。 – runner

関連する問題