【问题标题】:IE and Chrome don't fire a mouseover event for <option> elementsIE 和 Chrome 不会为 <option> 元素触发鼠标悬停事件
【发布时间】:2013-02-08 22:25:44
【问题描述】:

我的代码仅适用于 Firefox。这是为什么呢?

HTML:

<select id="selecter">
         <option>one</option>
         <option>two</option>
         <option>three</option>
   </select>

Javascript:

$(function() {
   $(document).on("mouseover", "#selecter option",function(){
            alert(1)        
    });
});

我很好奇为什么 IE 和 chrome 不会触发 mouseover 事件。请参阅此 JSFiddle:http://jsfiddle.net/yT6Y5/72/(在 Firefox 中完美运行。)

如何让 IE 和 Chrome 触发鼠标悬停事件?

【问题讨论】:

    标签: javascript jquery html internet-explorer google-chrome


    【解决方案1】:

    问题在于浏览器呈现下拉菜单的方式不同。 Chrome 不是将其呈现为 HTML 组件,而是呈现为原生 GUI 组件。那不能有来自 JS 的悬停处理程序。

    如果您想确保它适用于所有浏览器,请不要使用下拉菜单或获取脚本来创建使用 HTML 元素的下拉菜单

    【讨论】:

    • @PCoelho 感谢您的信息..奇怪的行为..不是吗?可以请告诉我任何其他有相同渲染问题的区域.. 提前谢谢
    【解决方案2】:

    看起来,当您将鼠标悬停在 IE 和 chrome 中的某个选项上时,实际上并没有触发任何事件,

    最好应该绑定更改事件。

    $(function() {
        $("#selecter").change(function(){
                alert(1);
        });
    });
    

    【讨论】:

      【解决方案3】:

      也许你应该使用不同的方法来绑定事件

       $(function() {
          $("#selecter").mouseover(function(){
              alert(1)        
           });
        });
      

      【讨论】:

      • mouseover 将不会在 chrome 中工作,如果你将 onmouseover 分配给每个选项,即使它不会在 chrome 中工作..因为我认为 chrome 不支持鼠标悬停。
      • 哪个没有触发在 ie 或 chrome 上试试这个 jsfiddle.net/yT6Y5/73 .....thanx
      • 那么你可以尝试更改事件
      猜你喜欢
      • 2013-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      • 2013-09-30
      • 1970-01-01
      • 2014-01-14
      相关资源
      最近更新 更多