我写了一个事件来将数据保存在一个小部件.js文件中,处理程序在页面上。没有错误或异常出现,但未调用处理程序。请帮忙。
小部件.js :
(function ($, undefined) {
$.widget('ui.discussionwidget', {
options: {
userID: 'arti.agarwa',
title: "",
width: "",
containerClass: ".ui-content-gutter"
},
saveData: function (userName, msg, parentID) {
//Save Discussion History
$.event.trigger({
type: "sendMessage",
userName: userName,
message: msg,
parentID: parentID,
timeStamp: new Date()
});
},
});})(jQuery);
页面脚本 :
$(document).ready(function () {
$('#discussionwidget').live("sendMessage", sendMessageHandler);
// sendMessage event handler
function sendMessageHandler(e) {
debugger;
alert(1);
}});
看起来事件委派不适用于全局事件
$('#discussionwidget').on("sendMessage", sendMessageHandler);
演示:小提琴
我可以看到两个可能的问题:
- 您的小部件具有类
discussionwidget
但您绑定了 iddiscussionwidget
。 - 您正在使用javascript动态创建小部件吗?可能是在创建小部件之前绑定了事件。
尝试同时修复两者。