Я пытаюсь создать обработчик событий для динамически создаваемого элемента, который может получить доступ к плагинам других функций.
Упрощенный пример:
;
(function($, window, document, undefined) {
/*main plugin*/
var pluginName = "myPlugin",
defaults = {
mySelectValue:'',
}
function Plugin(element, options) {
this.element = $(element);
this.settings = defaults;
$.extend(this.settings, options);
this._defaults = defaults;
this._name = pluginName;
this.init();
}
Plugin.prototype = {
init: function() {
$(element).html('<div><a href="#" id ="myButton">My New Button</a> <select id ="mySelect"><option value="1">1</option><option value="2">2</option></select></div>');
//bind events
$('#myButton', this.element).on('click', function(event) {
//how do I access this.buttonHandler, when this reffers to my new button element
});
$('#mySelect', this.element).on('click', function(event) {
//how do I access this.selectHandler, when this now reffers to my new button element
});
},
buttonHandler:function(){
//do somestuff
},
selectHandler:function(){
//do somestuff
},
}
$.fn[pluginName] = function(options) {
return this.each(function() {
if (!$.data(this, "plugin_" + pluginName)) {
$.data(this, "plugin_" + pluginName,
new Plugin(this, options));
}
});
};
}) (jQuery, window, document);
То есть, когда привязка события 'this' теперь относится к привязываемому элементу, как я могу получить доступ к свойствам и функциям родительских плагинов внутри '..' функция