Having issue with click function for <tr>
Having issue with click function for <tr>
HTML
<tr url="domain.com">
<td><input type="checkbox" name="checkbox[]" method="post" value="" class="checkbox" /> </td>
</tr>
JS
$("tr").not('.checkbox').click(function(){
window.location = $(this).attr("url");
});
想禁用点击框内的点击功能,但上面的代码不起作用:即使我点击复选框,它也会重定向。我哪里错了?
$("tr").not('.checkbox')
此代码将匹配所有不具有checkbox
类的tr
元素。正如您所看到的,您的tr
没有那个类,所以这个tr
将匹配。
有两种基本方法可以做你想做的事情。你可以在函数中检查原始点击的元素是什么,如果它是一个复选框,就不要重定向。或者,您可以向复选框中添加一个单击处理程序并调用e.stopPropagation()
。
$("tr .checkbox").click(function(e){
e.stopPropagation();
});
只需在下面的复选框中停止事件传播,
$('.checkbox').click(function(e){
e.stopPropagation();
});
修正了打字错误。
添加一个单独的处理程序来停止传播。
$("tr").click(function(){
window.location = $(this).attr("url");
})
.find(".checkbox").click(function(e) { e.stopPropagation(); });
单击复选框时停止事件传播。试试这个。
$('.checkbox').click(function(e){
e.stopPropagation();
});
并将您的代码更改为
$("tr").click(function(){
window.location = $(this).attr("url");
});
或者,您可以检查目标并采取相应行动。试试这个。
$("tr").click(function(e){
if(!$(e.target).is(':checkbox')){
window.location = $(this).attr("url");
}
});
相关文章:
- 使用Javascript,如何显示<tr>在另一<tr>悬停时,隐藏第二个<tr>
- 使用Razor/C#循环浏览HTML表以获得每个<tr>
- react-让一个元素返回两个相邻的<tr>标签
- jQuery只隐藏<tr>在一张桌子上
- 尝试应用于<tr>在ng单击中
- 使用'从HTML表中提取行的内容<tr onclick=alertContents()>'
- 如何将类添加到<tr>标记
- <TR>标记未订阅事件
- jquery如何删除<tr>标记
- jQuery在<TR>TR折叠时标签不起作用
- 访问特定<td>对于给定<tr>以及更改html
- 如何获取
从& lt; tr>在jQuery - validateDOMNesting (. .): & lt; tr>不能作为
- 如何在
和& lt; tr>元素 - 移动& lt; tr>根据复选框内是否包含
检查 - AJAX-generated & lt; tr>变成只是文本内容在firefox/chrome
- 我可以使用Jquery插入一个结束</tr>标签和开口<tr>标记在动态表中
- 改变& lt; tr>bgcolor基于
's出现在HTML与CSS的计数 - 动态表创建者Or
& lt; tr>创造者 - 如何使用
& lt; / tr>在& lt; br>为图像