【发布时间】:2013-07-16 19:49:18
【问题描述】:
如果单击元素的过程导致页面上的其他地方触发 onchange 事件,有谁知道如何触发一个简单的 JavaScript onclick 事件?我创建了一个非常简单的页面来演示这个问题:
<html>
<body>
<input type="text" name="test" id="test1" onchange="return change(event);" />
<a href="#" id="test2" onclick="return bang();">Bang</a>
<a href="#" id="test3" onclick="return boom();">Boom</a>
<script type="text/javascript">
function change(event) {
alert("Change");
return true;
}
function bang() {
alert("Bang!");
return true;
}
function boom() {
alert("Boom!");
return true;
}
</script>
</body>
</html>
如果您单击 bang 链接,您会收到 Bang!警报。 Boom 为您提供 Boom 警报。如果您在文本字段中输入文本并使用标签,您会收到更改警报。一切顺利。
但是,如果您在文本字段中输入文本,并且没有先使用 Tab 键或单击其他任何内容,则单击 Bang 或 Boom 您会收到更改警报,而没有其他任何内容。我希望看到更改警报,然后是 Bang 或 Boom。
这里发生了什么?我的更改事件返回 true。如何确保触发我的点击事件?
【问题讨论】:
-
提示:在jsfiddle.net 上创建一个小提琴并在此处分享。这使人们更容易对其进行测试和提供帮助。
-
您可能应该使用 addEventListener 而不是通过 html 分配它们作为提示。
-
尝试使用
console.log而不是alert。
标签: javascript