2011-02-17 47 views
1

有带班。数据表现场使用,我想申请setMask,通常的方法是:jQuery的:与插件

$(".data tbody tr input:text").setMask(); 

但是我动态地添加新行,因此需要为创建未来实况功能那些。 我都试过,但失败:

$('.data tbody tr input:text').live('ready', function() { 
    $(this).setMask(); 
}); 

我想找到一个解决这个。

回答

3

使用liveQuery插件。你可以绑定任何事件。

$('.data tbody tr input:text').livequery(function() { 
    $(this).setMask(); 
}); 
+0

你打败了我! :) – Andrey 2011-02-17 15:07:09

1

您只能将现有事件绑定到livebind。对于我来说,我找不到完整的列表(已经尝试了很多次),但readyload不在那里:也就是说,没有办法绑定正在加载的元素,至少在浏览器中是如此。如果你只关心非IE,那么我相信DomNodeInserted会作为一个事件。

无论采用哪种方式,您似乎都可以控制何时插入表格行,不是吗?所以,当你插入表行,然后就在它上面运行setMask,这一脉:

$tr = $(".data tbody").insertTableRow(); //Pretend function returns tr object 
$tr.setMask(); 
1

看看livequery插件。它与$ .live有一点不同,它可以在添加一个新的匹配元素时触发一个函数。