我创建了一个委托(delegate)来响应 HTML 表中的行单击。但是,如果用户单击表标题行,我希望该委托(delegate)不会触发。我可以轻松修改委托(delegate)定义来做到这一点吗?
$("#listingTable").delegate('tr', 'click', function () {
var latitude = $(this).children('td').eq(3).text().trim();
var longitude = $(this).children('td').eq(4).text().trim();
最佳答案
向您不需要的 tr 添加一个类:
<tr class="ignore"><td>Nope</td></tr>
<tr><td>Yes</td></tr>
$("#listingTable").delegate('tr:not(.ignore)', 'click', function () { /* ... */})
或者使用表格主体:
<table>
<thead>
<tr><th>exampleheader</th></tr>
</thead>
<tbody>
<tr><td>Only this</td></tr>
</tbody>
</table>
$("#listingTable").delegate('tbody>tr', 'click', function () { /* ... */})
或者全部使用 html5:
<tr data-lat="123" data-lng="456"><td>Some td's value</td></tr>
$("#listingTable").delegate('tr', 'click', function () {
if( typeof $(this).attr('data-lat') !=="undefined" ){
}
})
关于jQuery - <tr> 委托(delegate),忽略标题行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24223035/