javascript - Click 事件和 MouseOut 事件在 Chrome 中不起作用

标签 javascript events cross-browser onclick cross-platform

无法进入 Chrome 和 Firefox 中 onclick 和 onmouseout/over 事件的功能。任何无法在 Chrome 和 FF 中工作的原因都有解决方法。这些在 IE9 和 Opera 中工作得很好..

html页面中的代码如下所示:

     <script language="JavaScript" for="SmartGridCell" event="onclick()">
    sg_CellClick(event.srcElement);
</script>

<script language="JavaScript" for="SmartGridCell" event="onmouseover()">
    sg_MouseOverCell(event.srcElement);
</script>  

更多点击事件...

     <script language="javascript" for="optSet" event="onclick()">
    mc_SelectAnElement(this, document.getElementsByName('optSet'));
</script>

<script language="javascript" for="answerChoice" event="onclick()">
    mc_SelectAnElement(this, document.getElementsByName('answerChoice'));
</script>

这是我到目前为止所做的,但我无法在 Chrome 中触发该事件...

 <script language="JavaScript">

  var s1=document.getElementsByName('optSet');

  for (var i=0;i<s1.length;i++)
  {
    s1[i].addEventListener("click",mc_SelectAnElement(this, document.getElementsByName('answerChoice')),false);
  }

</script>

也尝试过这个,这个代码片段让我进入了该函数,但所选的值永远不会保留......

 if (document.addEventListener) 
{
    document.addEventListener("click",function (e){
    var srcElement= e.target;
    var tagName= srcElement.tagName;
    if(tagName="optSet")
    {
        mc_SelectAnElement(srcElement, document.getElementsByName('optSet'));
    }
    //mc_SelectAnElement(this, document.getElementsByName('optSet'));
    },true);
}

谢谢-

最佳答案

在现代 JavaScript 中,它会是这样的:

if (document.addEventListener) {
    document.addEventListener('click', function (e) {
        var el = e.target;
        var id = el.id;

        // the "for" attribute refers to an ID
        if (id == 'SmartGridCell' || id == 'SmartGridHeaderCell') {
            sg_CellClick(el);
        }
    }, true);

    /* repeat the same for "mouseover" and "mouseout" */
}

您也可以保留旧脚本,它们不会冲突。

Why this works in IE – 因为他们在 20 年前发明了自己丑陋的 KnockoutJS。当然,它是非标准的(DOM 2 为 forevent 属性表示 Reserved for future use)。

关于javascript - Click 事件和 MouseOut 事件在 Chrome 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11468376/

相关文章:

javascript - Angular.js 在指令中更新 SVG 模板

wpf - 有没有办法处理 pin/unpin 事件 devexpress LayoutPanel

javascript - 如何禁用 window.onscroll 函数调用 JavaScript 中的另一个函数?

c# - 在类的所有实例中引发事件

javascript - 回车后如何调用onclick函数

javascript - 从 url react 加载 svg 图像

javascript - 当我直接点击 index.html 时,聚合物不起作用

javascript - 测试浏览器是否支持 CSS 选择器

Javascript switch 语句 - default first OK?

javascript - 在没有实际拖动的 JavaScript 中检测 mouseDown、拖动和 mouseUp 事件的最佳方法是什么?