В пользовательском плагине jquery как я могу получить доступ к родительскому плагину из события в элементе, созданном и привязанном в инициализации плагина - PullRequest
0 голосов
/ 16 февраля 2020

Я пытаюсь создать обработчик событий для динамически создаваемого элемента, который может получить доступ к плагинам других функций.

Упрощенный пример:

;
(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' теперь относится к привязываемому элементу, как я могу получить доступ к свойствам и функциям родительских плагинов внутри '..' функция

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...