Я написал событие для сохранения данных в файле 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);
}});
Похоже, что делегирование событий не работает с глобальными событиями
$('#discussionwidget').on("sendMessage", sendMessageHandler);
Демо: скрипка
Я вижу две возможные проблемы:
discussionwidget
но вы привязываетесь к id discussionwidget
.Попробуйте исправить оба.
$("#discussionwidget")
не вернет ни одного элемента. Вы можете проверить, используя alert($("#discussionwidget").length)
. Если вы видите 0, ваш виджет еще не создан, и событие не будет связано.