我正在尝试将jQuery插件附加到动态生成的按钮上。我试过以下但没有成功:
$('.myButton').live('click', function() {
$(this).file().choose(function(e, input) {
// ...
});
});
我想这不起作用,因为插件需要在点击之前绑定。
所以我试过......
$('.myButton').load(function() { ... });
和(现在变得绝望)......
$('.myButton').live('load', function() { ... });
在用户点击之前,我可以使用哪种方法绑定新生成的按钮?
答案 0 :(得分:1)
您需要添加代码:
$('.myButton').live('click', function() {
$(this).file().choose(function(e, input) {
// ...
});
});
您动态添加按钮后(所以基本上将其添加到添加动态按钮的例程中)。
吉姆
答案 1 :(得分:1)
您可以在生成时将其绑定,例如如果它是由$.ajax()
生成的,那么它看起来像这样:
$.ajax({
//options...
success: function(data) {
//do stuff
$(".myButton", data).file().choose(...);
}
});
重要的部分是, data
,我们给selector一个context来搜索它,所以它只找到在响应中加载的按钮。同样的技术也适用于other $.ajax()
shorthand versions上的成功方法。
如果那不是一个选项,那么就有一条不那么高效的路线。您可以使用the .livequery()
plugin主动查找并处理新元素,无论来源如何。在这种情况下,您的代码看起来像这样:
$(".myButton").livequery(function() {
$(this).file().choose(...);
});