我有功能
$('table tr:gt(0)').each(function() {
if ($('td:contains("'+ pointName +'")', this).length == 0) $(this).hide();
});
我希望这个函数与live()绑定。
我尝试过这样的事情,但是无法发挥作用。
$('table tr:gt(0)').live('each', function (){
if ($('td:contains("'+ pointName +'")', this).length == 0) $(this).hide();
});
正确的方法是什么?
答案 0 :(得分:1)
你不需要说每一个 - 实际上这是不正确的用法。 live
的第一个参数指定事件类型。 change
,keyup
等等......
live
- 就像大多数jQuery方法作用于整个选定集一样。所以你可能想要......
$('table tr:gt(0)').live('click', function (){
if ($('td:contains("'+ pointName +'")', this).length == 0) $(this).hide();
});
live
也可以接受多个事件 - 例如.live('change click keyup', function()...
将绑定到所有三个事件。
答案 1 :(得分:1)
each()
是一种迭代一组元素的方法。 live()
用于绑定事件。因此,each()
不是一个事件,您不能像live()
那样使用它。相反,您应该绑定到click
或hover
之类的事件,然后使用处理程序中第一个示例中的each()
代码。
最后,不推荐使用live()
。如果您使用的是旧版本的jQuery,则应使用delegate()
代替。
试试这个:
$("#myContainer").delegate('#myButton', 'click', function() {
$('table tr:gt(0)').each(function() {
if ($('td:contains("'+ pointName +'")', this).length == 0) {
$(this).hide();
}
});
});