在safari中选择元素onmouseleave事件

时间:2016-08-28 07:37:26

标签: javascript html safari

我想抓住鼠标,留下一个带有以下代码的选择框。

在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>

1 个答案:

答案 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>