[英]How to trigger a jQuery UI custom event correctly?
我正在構建用於研究目的的文件上傳器插件,並且正在努力嘗試使回調以我想要的方式工作。 簡而言之,此小部件在類型為file
的輸入字段上運行。 一些代碼可以更好地解釋:
$.widget('ultimatum.uploadify', {
create: function() {
// Irrelevant code here
},
_onChange: function(event) {
// Private function that is fired when an "change" event
// is triggered by the input.
var files = event.target.files;
var fileInfo = {};
// When the file processing finish, I want to trigger this custom event:
this._trigger("fileready", null, fileInfo);
}
});
好的,這樣,我可以像這樣處理回調:
$('#upload-files').uploadify({
fileready: function(event, file) {
// My code here
}
});
問題是我想像這樣處理此事件:
$('#upload-files').uploadify();
$('.upload-files').on('fileready', function(event, file) {
// My code here.
});
盡管前一種方法效果很好,但后一種效果卻很差。 是否可以使用“ on”以這種方式處理自定義jQuery事件?
來自http://api.jqueryui.com/jQuery.widget/
大事記
所有小部件都具有與其各種行為相關聯的事件,以便在狀態更改時通知您。 對於大多數窗口小部件,在觸發事件時,名稱將以窗口小部件名稱開頭並小寫。 例如,我們可以綁定到progressbar的
change
事件,該事件在值更改時觸發。
$( "#elem" ).bind( "progressbarchange", function() {`
alert( "The value has changed!" );
});
每個事件都有一個相應的回調,作為選項公開。 如果需要,我們可以掛鈎到progressbar的
change
回調中,而不是綁定到progressbarchange
事件。
$( "#elem" ).progressbar({
change: function() {
alert( "The value has changed!" );
}
});
所有小部件都有一個create事件,該事件在實例化時觸發。
因此,對於您的小部件,它看起來像:
$('#upload-files').uploadify();
$('#upload-files').on('uploadifyfileready', function(event, file) {
// My code here.
});
正如我在評論中提到的,我認為$('.upload-files')
可能是一個錯字,而正確的選擇器是$('#upload-files')
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.