Mul*_*uli -1 html javascript datatable jquery
我有一个带有Datatable插件的表,当用户点击row(tr)时他会将其重定向到该链接.但我不希望用户在单击行上的复选框时被重定向到链接.这是html:
<tr class="odd gradeX">
<td class="number_elem_lang">
<label class='with-square-checkbox2-mylist-details'>
<input type='checkbox'>
<span></span>
</label>
</td>
<td class=""> ID022ox</td>
<td class="list-name">First Lipsum List</td>
<td class=""> 22 Candidates</td>
<td class="">01 Apr 2016</td>
<td><a href=""></a></td>
</tr>
Run Code Online (Sandbox Code Playgroud)
这是我的javascript代码,用于在点击用户时将用户重定向到链接:
$('#sample_1').on( 'click', 'tr', function() {
var $a = $(this).find('a').last();
if ( $a.length )
window.location = $a.attr('href');
} );
Run Code Online (Sandbox Code Playgroud)
因此,当单击复选框时,我不想重定向用户,请帮助:)
谢谢
您可以e.target用来检查用户点击的元素.在下面的示例中,我们检查用户是否单击了某个input类型checkbox.然后我们不运行其余的功能.
$('table').on( 'click', 'tr', function(e) {
var target = $(e.target);
debugger; // For debugging purposes.
if (target.is('input[type=checkbox]')) {
// Do not continue if it's an input
console.log('no redirect');
return true;
}
console.log('do redirect');
var $a = $(this).find('a').last();
if ( $a.length )
window.location = $a.attr('href');
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr class="odd gradeX">
<td class="number_elem_lang">
<label class='with-square-checkbox2-mylist-details'>
<input type='checkbox'>
<span></span>
</label>
</td>
<td class=""> ID022ox</td>
<td class="list-name">First Lipsum List</td>
<td class=""> 22 Candidates</td>
<td class="">01 Apr 2016</td>
<td><a href=""></a></td>
</tr>
</table>Run Code Online (Sandbox Code Playgroud)
更新:
在这个特殊情况下,复选框有一些自定义样式,这导致了e.target一个span.解决方案是将条件更改为$(e.target).is('span'),甚至更好地设置span和使用类$(e.target).hasClass('my-custom-checkbox').
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |