Настройте пользовательский плагин Jquery с событиями кликов - PullRequest
0 голосов
/ 28 июня 2019

На самом деле проблем нет, я просто знаю, что мой нынешний плагин Jquery работает не так, как он, и я надеюсь, что кто-то может направить меня в правильном направлении.

Итак, это поведение плагина: 1. При нажатии на ссылку с определенным классом (может быть несколько ссылок с одним и тем же классом), опции передаются плагину, некоторые жестко запрограммированы, но некоторые собираются из данных.-attributes.2. Показан мод загрузки (пустой модал).3. Аякс пост на внешнюю страницу с опциями из функции размещен.5. Ajax success callback помещает новое html-содержимое в модальное поле для отображения.

Это мой текущий плагин jquery

(function($){
    $.fn.custom_xedit = function( options ) {

        var settings = $.extend({
        type: this.attr("data-type"),
        selectsource: this.attr("data-selectsource"),
        mask: this.attr("data-mask"),
        title: this.attr("data-title"),
        pk: this.attr("data-pk"),
        posturl: this.attr("data-posturl"),
        originalvalue: this.attr("data-originalvalue"),
        name: this.attr("data-name")
        }, options );

        this.addClass('xedit___el___active');

        $('#xedit_modal').modal({
            backdrop: 'static',
            keyboard: false
        });

        $.ajax({
            type: 'POST',
            url: 'url',
            data: { 
                'type': settings.type,
                'selectsource': settings.selectsource,
                'mask': settings.mask,
                'title': settings.title,
                'pk': settings.pk,
                'posturl': settings.posturl,
                'originalvalue': settings.originalvalue,
                'name': settings.name
            },
            success: function(callback_modal){
                $("#xedit_modal").html(callback_modal);
            }
        });
    }; 
}( jQuery ));

И я в настоящее время называю его:

$('body').on("click", ".some_class", function () {
    $(this).custom_xedit({
        type: "input_mask",
        mask: "999",
        title: "Internal extension",
        posturl: "some_url",
        name: "Ext"
    });
});

Было бы неплохо иметь возможность вызывать его, не окружая его нажатием кнопки мыши, но не уверенный, как это сделать (как показано ниже:)

$(.some_class).custom_xedit({
type: "input_mask",
mask: "999",
title: "Internal extension",
posturl: "some_url",
name: "Ext"
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...