0

我已经编写了一个事件来将数据保存在 widget.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);
                }});
4

2 回答 2

0

看起来事件委托不适用于全局事件

$('#discussionwidget').on("sendMessage", sendMessageHandler);

演示:小提琴

于 2013-09-24T10:37:59.443 回答
0

我可以看到两个可能的问题:

  1. 您的小部件具有类discussionwidget,但您与 id 绑定discussionwidget
  2. 您正在使用 javascript 动态创建小部件?可能是在创建小部件之前绑定了事件。

尝试修复两者。

于 2013-09-24T04:49:30.083 回答