我试图单击表行并执行操作.但是,如果他们单击第一个<td>单元格,我不希望它执行该操作.
这是我到目前为止的代码:
jQuery('#dyntable tbody tr').live('click', function () {
nTr = jQuery(this)[0];
openMessage(oTable, nTr);
});
Run Code Online (Sandbox Code Playgroud)
这是按预期工作,除了第一个<td>有一个复选框,所以如果他们点击该单元格我不想调用o penMessage(oTable, nTr);函数.
我还需要nTr=行的内容.
cha*_*tfl 14
在行内使用单击目标,并检查TD的索引
简化演示:http://jsfiddle.net/WLR9E/
jQuery('#dyntable tbody tr').live('click', function (evt) {
var $cell=$(evt.target).closest('td');
if( $cell.index()>0){
openMessage(oTable, this);
}
});
Run Code Online (Sandbox Code Playgroud)
如果使用jQuery> = 1.7转换为on(),则不推荐使用live().以下假设主表是页面中的永久资产.
jQuery('#dyntable').on('click','tbody tr', function (evt) {
var $cell=$(evt.target).closest('td');
if( $cell.index()>0){
openMessage(oTable, this);
}
});
Run Code Online (Sandbox Code Playgroud)
代码中的这一行是redindant,它只返回相同的行 this
nTr = jQuery(this)[0];
Run Code Online (Sandbox Code Playgroud)
$("#dyntable tbody").on('click', 'tr td:not(:first-child)',function () {
alert("success");
});
Run Code Online (Sandbox Code Playgroud)
$(document).ready(function ()
{
$("#tbluserdata tbody").on('click', 'tr td:not(:first-child)', function () {
alert("write code");
});
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<head>
</head>
<body>
<table border="2" width="50%" id="tbluserdata">
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>Address</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>aaa</td>
<td>ccc</td>
<td>delete</td>
</tr>
<tr>
<td>1</td>
<td>aaa</td>
<td>ccc</td>
<td>delete</td>
</tr>
<tr>
<td>1</td>
<td>aaa</td>
<td>ccc</td>
<td>delete</td>
</tr>
</tbody>
</table>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11452 次 |
| 最近记录: |