2016-08-28 4 views
0

以下のコードを使って選択ボックスを残してマウスをキャッチしたいと思います。safariのonmouseleaveイベントを選択する

Chromeではこれは素晴らしいですが、Safariでは、ボックスからオプション内に移動するときにもイベントが発生します。

select要素を離れるときにのみonmouseleaveイベントを発生させるにはどうすればよいですか?

thx!

var s=document.getElementById("myselect"); 
 
s.onmouseleave=function(e) { alert("mouseleave"); }
<select id="myselect" size=4> 
 
    <option>first</option> 
 
    <option>second</option> 
 
    <option>third</option> 
 
    <option>forth</option> 
 
</select>

答えて

0

onmouseleaveがよくSafariでサポートされていないようなので、私が代わりれるonmouseout使用して終了思わ:

var s=document.getElementById("myselect"); 
 
s.onmouseout = (e => { 
 
    let related=(e.relatedTarget ? e.relatedTarget.tagName : null); 
 
    if (related!=='SELECT' && related!=='OPTION') alert("left select box"); 
 
});
<select id="myselect" size=4> 
 
    <option>first</option> 
 
    <option>second</option> 
 
    <option>third</option> 
 
    <option>forth</option> 
 
</select>

関連する問題