Javascript 如果执行了锚href链接,则禁用onClick事件

Javascript 如果执行了锚href链接,则禁用onClick事件,javascript,html,hyperlink,Javascript,Html,Hyperlink,我有一张桌子。 每一行都是指向某个页面(例如-google.com)的链接,该页面由js“onClick window.open”方法调用: 如果我点击锚定链接,它会被打开,但也会打开第一个被onClick调用的页面 我发现了一个相反的问题: 我们可以通过向onClick事件添加“return false”来禁用href 如果单击了锚链接,是否可以防止onClick执行 这是我的演示:是的,这是可能的 $("tr").on("click", function(){ $(this).attr

我有一张桌子。 每一行都是指向某个页面(例如-google.com)的链接,该页面由js“onClick window.open”方法调用:

如果我点击锚定链接,它会被打开,但也会打开第一个被onClick调用的页面

我发现了一个相反的问题:

我们可以通过向onClick事件添加“return false”来禁用href

如果单击了锚链接,是否可以防止onClick执行

这是我的演示:是的,这是可能的

$("tr").on("click", function(){ 
 $(this).attr("onClick", false); 
});

演示:

我建议您稍微改变一下方法。内联事件处理程序从来都不是好主意。考虑这个代码。

HTML:


演示:现在它在演示中不起作用了。。。我们需要包括jquery吗?抱歉,我看到jquery附加了,但它不起作用-你可以看到,当你点击锚链接时,两个链接都被打开了…谢谢,我在演示中看到它起作用,但在我的真实网站上不起作用,我将对此进行调查。我发现了我的问题-如果我们在表输出之后添加js脚本,它就会工作,而不是相反地工作。。。我总是在页面的开头(在head标签中)添加所有js脚本。为什么它不能以我的方式工作?因为如果在表之前添加脚本,它将在加载DOM之前执行。因此,在执行时,文档中没有表。如果我从外部src附加脚本,请您帮助,应该如何更改它?我想它有点像
window.onload=table.addEventListener…
,但我找不到正确的方法,只是在关闭
标记之前包含脚本标记。
<td class='td'><a href = "http://jsfiddle.net">JSFiddle</a></td>
$("tr").on("click", function(){ 
 $(this).attr("onClick", false); 
});
<table id="table">
    <tr data-url="http://google.com">
        <td>Content</td>
        <td>Content</td>
        <td><a href="http://jsfiddle.net">JSFiddle</a></td>
    </tr>
    ...
</table>
var table = document.getElementById('table');

table.addEventListener('click', function(e) {

    var target = e.target;
    if (target.tagName == 'A') {
        return false;
    }

    if (target.tagName == 'TD') {
        var win = window.open(target.parentNode.getAttribute('data-url'));
        win.focus();
    }
}, false);