Я расширяю виджет jQuery UI, используя фабрику $ .widget. В этом конкретном случае я наследую от wijlinechart Wijmo. Мне нужно ответить на «раскрашенное» событие wijlinechart из моего дочернего класса.Как добавить родительский обработчик событий изнутри унаследованного плагина виджета с помощью jQuery UI?
Рассмотрим это:
$.widget("bw.wijlinechartcursor", $.wijmo.wijlinechart, {
_create: function() {
var self = this;
$.wijmo.wijlinechart.prototype._create.apply(self, arguments);
self.element.on("painted", function (e) {
alert("Got painted in child via element.on"); // Doesn't get called.
});
// This works, but blows away the client code's handler (below)
self.options.painted = function (e) {
alert("Got painted in child class via options.painted!");
}
},
_painted: function() {
alert("Got painted in child via _painted"); // Doesn't get called.
}
});
$("#mywijlinechartcursor").wijlinechartcursor({
// ... stuff...
painted: function (e) {
alert("Got painted in client code");
}
});
Итак, что является наиболее эффективным способом для обработки событий вниз в дочернем классе, который _trigger'ed унаследованным родительского класса?
** Это сделало трюк ** спасибо - я просто был не соединяющее! точек с префиксом события. Получил это сейчас! – BrandonLWhite
Удивительно, но «self.widgetEventPrefix» должен быть уменьшен до имени здания, потому что _trigger() делает имя события ** строчным ** (jQuery UI v.1.8.20): 'self.element.on (self .widgetEventPrefix.toLowerCase() + "paint", function() {}); ' Если бы я знал это раньше, я бы сэкономил несколько часов отладки через jQuery ... –