Я все еще немного новичок в событиях jQuery.Событие jQuery Bubbling на неправильном объекте
Я пытаюсь написать jQuery оболочку/рамки Asp.NET UpdatePanel, которая автоматически отслеживает обновления async UpdatePanel.
Я хочу быть в состоянии сделать что-то вроде
$("#myUpdatePanel").on("update", myFunc);
и запустить его некоторый обработчик с this
как обновленной UpdatePanel. У меня на самом деле этот бит работает.
Я также хочу иметь возможность запускать функцию ровно один раз в любое время, когда обновляется одно или несколько обновлений UpdatePanels.
$.updatePanel.on("update", myRunOnceFunc);
Здесь я испытываю проблемы.
Я определил свою обертку:
// wrap updatePanel reload functionality
$.updatePanel = (function() {
var prm;
var UpdatePanel = function() { };
UpdatePanel.prototype = { };
// initialize on $(document).ready()
$(function() {
prm = Sys.WebForms.PageRequestManager.getInstance();
if (prm) {
prm.add_pageLoaded(function (s, e) {
$.each(e.get_panelsUpdated(), function() {
// call panel-specific update event handlers
$(this).trigger($.Event("update"));
});
// triggered once no matter how many panels were updated
$(UpdatePanel).trigger($.Event("update"));
});
}
});
return $(UpdatePanel);
})();
Тогда в моем коде, который использует $.updatePanel
:
$(function() { $.updatePanel.on("update", myRunOnceFunc); });
Что я вывод, что myRunOnceFunc
в настоящее время работают как во время $(this).trigger($.Event("update"));
и $(UpdatePanel).trigger($.Event("update"));
.
Любые идеи, почему и как их исправить?