我想抓住鼠标,留下一个带有以下代码的选择框。
在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 :(得分: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>