Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在表行上单击一次-锚定除外_Javascript_Jquery - Fatal编程技术网

Javascript 在表行上单击一次-锚定除外

Javascript 在表行上单击一次-锚定除外,javascript,jquery,Javascript,Jquery,我有一个表,其中有以下事件: $("#tp-active-list-table td").click(function () { var transactionNbr = parseInt($(this).parent("tr").children('td.td-transaction-nbr').html()); DoSomething(transactionNbr); }); 它工作正常,基本上调用DoSomething,使用从相应的td收集的Number 但我确实有一个问

我有一个表,其中有以下事件:

$("#tp-active-list-table td").click(function () {
    var transactionNbr = parseInt($(this).parent("tr").children('td.td-transaction-nbr').html());
    DoSomething(transactionNbr);
});
它工作正常,基本上调用
DoSomething
,使用从相应的
td
收集的
Number

但我确实有一个问题,因为在其中一个
td
s中我有一个锚,如果在该锚上执行了单击,那么
DoSomething
将运行,页面将正确导航到另一个URL


是否仍要检查单击是否在该
定位点上,以避免运行
DoSomething
函数?

作为第一个参数传递给处理程序函数的对象具有属性
target
,如果
target.tagName='a'
,则单击定位点。

用于防止冒泡事件

$('td a').click(function (e) { 
    e.stopPropagation()
});
其他选项是:
e.target.tagName

$("#tp-active-list-table td").click(function (e) {
    if(e.target.tagName.toLowerCase() === 'a'){
            var transactionNbr = parseInt($(this).parent("tr").children('td.td-transaction-nbr').html());
            DoSomething(transactionNbr);
    }
});

我认为肖纳克的回答非常有效。仅指出另一种方法,在单击事件上,您可以检查是否有悬停的
标记

$(“#tp活动列表表td”)。单击(函数(事件){

if($(this.find)(“a:悬停”).length如果你想链接被跟踪,为什么需要做任何事情?@j08691我不想做任何事情。这就是重点。+1,我只是想写这篇文章。这意味着绑定一个新事件,这在我看来不是最好的。+1也…打败我too@Karl-AndréGagnon就在这里。这只是一个解决办法。但很有效。
e.target.tagNamea
有子项,则ode>是危险的。由于使用了jQuery,如果您查看我链接为重复的问题,我会在目标上使用
.closest()
,这是最好的解决方案。
$("#tp-active-list-table td").click(function(event) {
    if($(this).find("a:hover").length <= 0) {

       /* ..... */

    }
});