单击事件和鼠标输出事件在chrome中不起作用

Click events and MouseOut events not working in chrome

本文关键字:chrome 不起作用 出事件 输出 事件 鼠标 单击      更新时间:2023-09-26

无法进入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="answerswerChoice" 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" */
}

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

为什么这在IE中有效——因为他们在20年前发明了自己丑陋的KnockoutJS。当然,它是非标准的(对于forevent属性,DOM 2表示Reserved for future use)。