javascript - jQuery:防止单击子元素的类:在 tr 单击时重定向页面,除了某些 td

标签 javascript jquery html onclick click

我已经搜索了大约 30 分钟,所以如果我已经错过了这个答案,我深表歉意。我见过很多 CLOSE,但没有一个像这样。

我有一个导入的 JavaScript 函数,该函数在多个文件中使用。它使得任何行具有 clickable-row 类的表格都将重定向到 href 属性,从而使整行充当 anchor 标记。

但是,在某些页面上,我将在 td 上填充一个复选框,我希望能够在不进行页面重定向的情况下单击该复选框(这样我就可以选择表中的多行) .

这是我当前的功能:

jQuery(document).ready(function() {
    jQuery('.clickable-row').click(function() {
        window.document.location = jQuery(this).attr('href');
    });
});

我希望它执行如下操作,但这不起作用:

jQuery(document).ready(function() {
    jQuery('.clickable-row').click(function() {
        if(!jQuery(this).closest('td').hasClass('skip-click')) {
            window.document.location = jQuery(this).attr('href');
        }
    });
});

关于如何处理这个问题有什么想法吗?

最佳答案

您需要使用e.target .

处理程序内的

this 将引用 .clickable-row 元素,而不是实际触发点击的元素。 event object 的目标属性将返回触发事件的元素。

jQuery(document).ready(function ($) {
    $('.clickable-row').click(function (e) {
        if (!$(e.target).closest('td').hasClass('skip-click')) {
            window.document.location = jQuery(this).attr('href');
        }
    });
});

关于javascript - jQuery:防止单击子元素的类:在 tr 单击时重定向页面,除了某些 td,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26333422/

相关文章:

css - Div 不想填充 body 的其余部分

javascript - 将一个 "bigger"ul 的底部与另一个的底部对齐

javascript - 带有阿拉伯语月份的 javascript 中的日期转换和操作

javascript - 替换与正则表达式匹配的单元格的内部 html

c# - 两个列表框具有相同的值,我需要从一个列表框中删除相同的值

javascript - jQuery 不更新某些跨度

html - 我可以更改分配给 Bootstrap 生成的表的类吗?

javascript - 在函数上返回 this

javascript - 如何在 Angular 2 Material 表的搜索结果中加粗搜索模式

javascript - 如何使用 CSRF 测试 express form post?