【发布时间】:2013-09-24 04:24:47
【问题描述】:
我已经编写了一个事件来将数据保存在一个 widget.js 文件中,并且处理程序在页面上。没有错误或异常即将到来,但处理程序没有被调用。请帮忙。
Widget.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);
}});
【问题讨论】:
-
你在哪里绑定事件?在 document.ready 内部还是其他地方?我相信这个事件根本不受约束。
-
第一个函数在 (function ($, undefined) { $.widget('ui.discussionwidget', { options: { userID: 'arti.agarwa', title: "", width: "", containerClass: ".ui-content-gutter" },} 一个小部件
-
从 $(document).ready(function () {) 调用我已经更新了代码
-
仅供参考,
.live()已被弃用很长时间。您应该改用.on()(使用不同的语法)。另外,您确定sendMessage会传播并因此与您正在使用的委托事件处理一起工作吗? -
我使用的是 JQuery1.6,所以不能使用'on'。我在博客中阅读了关于Jquery事件处理并以这种方式实现的,代码中是否有任何错误?
标签: javascript event-handling jquery