【发布时间】:2014-12-19 14:39:06
【问题描述】:
我正在尝试使用 jQuery 生成一个小脚本,但遇到了障碍。我的脚本是关于使用 trHighlight 类将每个单击的表格的 <tr> 对象转换为特定样式:
$(document).ready(function() {
$('tr').bind('click', function() {
$(this).addClass('trHighlight');
});
});
当再次单击表格的每一行(每个<tr> 对象)时,我现在正尝试返回正常 样式。我尝试了以下脚本:
$(document).ready(function() {
$('tr').bind('click', function() {
$(this).addClass('trHighlight');
});
$('tr .trHighlight').bind('click', function() {
$(this).removeClass('trHighlight');
});
});
特定的if-结构也没有太大帮助。你有什么想法吗?
另一个问题:您是否有可以通过this.x 寻址的所有属性的描述,例如this.id - 也许我可以尝试使用“this”的类属性找到一种方法?
【问题讨论】:
-
更改元素的类不会更改绑定到它的事件处理程序。
-
您的第二个点击处理程序不起作用的原因是因为 1)选择器中有一个空格(如下面的 Bram 解释)和 2)您在点击处理程序之后添加了
.trHighlightclass已绑定。使用on可以完成这项工作,尽管 matthias_h 的解决方案是可行的方法。$('table').on('click', 'tr.trHighlight', function() { $(this).removeClass('trHighlight'); });
标签: javascript jquery