我有一个表行贴有鼠标JavaScript操作单击表行内的任何地方:如何忽略第一个事件并跳到第二个?
<tr onmousedown="someAction(this)">
<td>cell 1</td>
<td>cell 2</td>
<td><a href="page2.html">cell 3</a></td>
</tr>
如果用户点击该行中的任何地方,我想要的JavaScript操作,someAction(本),被关注。但是,如果用户单击第2页的链接,则我希望忽略该操作并遵循链接。
不幸的是,该操作首先被观察到,这恰好将链接文本的位置移动到足以让点击被删除。换句话说,在这种情况下,用户不能实际点击链接并转到第2页。
如何禁用点击链接上的mousedown操作?
谢谢!
更新:基础上的答案,我最终包含在HTML,其注册的事件处理程序停止传播的末尾下面的JavaScript的建议,像这样:
...
<script type="text/javascript" language="javascript">
//<![CDATA[
function stopEvent(ev) {
ev.stopPropagation();
}
var links = document.getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
links[i].addEventListener("onmousedown", stopEvent, false);
}
//]]>
</html>
这可能会对很容易被包含在文档的onload事件中,但由于其他原因,CDATA部分已经被需要,所以我在这里添加了我需要的内容。
感谢您的所有帮助和建议! :)
谢谢!我没有在这个项目中使用jQuery,所以我使用了一些包含在HTML中的JavaScript来完成这个任务(参见上面我编辑的问题)。 – Trevor 2010-12-20 18:12:13
@Stephen,谢谢你让它更清晰 – unclenorton 2011-06-27 12:21:11