从页面调用时,Jquery事件处理程序无法正常工作

时间:2013-09-24 04:24:48

标签: javascript event-handling jquery

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

2 个答案:

答案 0 :(得分:0)

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

  1. 您的小部件包含类discussionwidget,但您绑定了标识discussionwidget
  2. 您是使用javascript动态创建小部件的?可能是在创建窗口小部件之前绑定了事件。
  3. 尝试解决这两个问题。

答案 1 :(得分:0)

看起来事件委派对全局事件不起作用

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

演示:Fiddle