从页面调用时 Jquery 事件处理程序不起作用

Jquery Event handler not working when calling from page

本文关键字:事件处理 程序 不起作用 Jquery 调用      更新时间:2023-09-26

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

演示:小提琴

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

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

尝试同时修复两者。