我已经搜索了大约 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/