3

我正在使用jQuery-File-Upload小部件(尽管我相信这个问题可以推广到任何 jQuery 小部件)。API指示用户使用该方法初始化小部件,fileupload因此:

$('#fileupload').fileupload();

我的问题是:在不知道 ID 的情况下,我怎么能找到#fileupload(以及任何其他已经.fileupload()调用它们的元素?

4

1 回答 1

4

jQuery File Upload 在后台使用 jQuery UI 小部件工厂,并且众所周知,该工厂使用它们使用data()扩展的元素注册小部件实例。

因此,您可以使用filter()并编写如下内容:

// Restrict ancestor if you can, $("*") is expensive.
var uploadified = $("#yourAncestor *").filter(function() {
    return $(this).data("fileupload");
});

更新:从 jQuery UI 1.9 开始,data()成为小部件的完全限定名称,点被替换为破折号。因此,上面的代码变为:

var uploadified = $("#yourAncestor *").filter(function() {
    return $(this).data("blueimp-fileupload");
});

1.9 中仍支持使用非限定名称,但已弃用,并且将在 1.10 中删除支持。

于 2012-06-28T19:48:51.240 回答