1
我有一个非常简单的使用jQuery缓存和委托的jsFiddle。我如何使处理程序具有足够的动态性,当用户单击第一组复选框时,它只会突出显示其下面的行,并且当用户选择第二组复选框时,它应该选择第二个复选框下方的行。如何识别委托代码中触发jQuery点击事件的对象
我可以在组复选框下有n组和n行。对于性能,我试图缓存一切,然后在处理程序中,我希望能够根据复选框使用指定类来选择所需的组行。另外,我想确定用户何时单击数据单元格。
我尝试了不同的选项来识别对象,我猜obj.type不会返回我认为会给我的类型。任何帮助将非常感激。
代码:
var elements = $(".data");
$("table").delegate("td", "click", function(evt){
var obj = $(this);
switch (obj.type) {
case: "checkbox":
//select all elements under this group
elements.addClass('blue');
break;
case: "td":
//I know this is not the right case, not sure how to trap a cell click
//apply class 'red'
break;
default:
elements.addClass('green');
break;
}
});
支持HTML和CSS
<table>
<tbody>
<tr>
<td>
<input type="checkbox" id="chkFirst" />
</td>
</tr>
<tr class="data">
<td class="first">
A
</td>
</tr>
<tr class="data">
<td class="first">
B
</td>
</tr>
<tr class="data">
<td class="first">
C
</td>
</tr>
<tr class="data">
<td>
<input type="checkbox" id="chkSecond" />
</td>
</tr>
<tr class="data">
<td class="second">
Aa
</td>
</tr>
<tr class="data">
<td class="second">
Bb
</td>
</tr>
</tbody>
</table>
.blue {
color: blue;
}
.red {
color: red;
}
.green {
color: green;
}
我明白了,我该如何获取元素ID或类名,以便我可以识别组? – 2013-02-19 05:12:50
你可以执行'$(evt.target)',然后调用它的任何jQuery函数。 – 2013-02-19 11:36:35