这里发生了一件奇怪的事情,我有一个数据表,可以通过点击行中的任何单元格来选择行,最后一个单元格附加了一些其他函数,因此它可以选择行(选中复选框)但不要取消选中它:
这是标记:
<tr class="82510246 inventory-row">
<td>
<input type="checkbox" value="82510246" name="tags[]" id="tag82510246" class="checkbox inventory-checkbox">
</td>
<td>40003</td>
... a whole bunch of cells ...
<td>430</td>
<td class="inventory-price">
<a class="tag-price">0.7289</a>
</td>
</tr>
和THE JQUERY:
$('.inventory-row').on('click', 'td', function(event) {
var css = $(this).attr('class');
var box = $(this).closest('tr').find(':checkbox').is(':checked');
if(css !== 'inventory-price'){
$(this).closest('tr').find(':checkbox').trigger('click');
}
if(css == 'inventory-price' && !box){
$(this).closest('tr').find(':checkbox').trigger('click');
}
});
我无法直接点击单元格/复选框 - 如果我点击该单元格,则没有任何反应(框不会选择/取消选择)
为什么没有发生?
答案 0 :(得分:1)
您尝试在每个td上添加事件点击,这样您的代码就会出现冲突,因为您的复选框也在td
内。添加类似&#34; td-text
&#34;在你的td你想要点击,除了这个与checbox。
$('.inventory-row').on('click', '.td-text', function(event) {
var css = $(this).attr('class');
var box = $(this).closest('tr').find(':checkbox').is(':checked');
if(css !== 'inventory-price'){
$(this).closest('tr').find(':checkbox').trigger('click');
}
if(css == 'inventory-price' && !box){
$(this).closest('tr').find(':checkbox').trigger('click');
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<table>
<tr class="82510246 inventory-row">
<td>
<input type="checkbox" value="82510246" name="tags[]" id="tag82510246" class="checkbox inventory-checkbox">
</td>
<td class="td-text">40003</td>
... a whole bunch of cells ...
<td class="td-text">430</td>
<td class="inventory-price">
<a class="tag-price">0.7289</a>
</td>
</tr>
</table>
&#13;