无法进入 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 为 for
和 event
属性表示 Reserved for future use
)。
关于javascript - Click 事件和 MouseOut 事件在 Chrome 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11468376/