Вызов плагина jQuery, не определяя элементов

еще одна возможность использовать объекты HTML из xslt является следующей:

<xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
26
задан Andreas Grech 18 November 2009 в 19:17
поделиться

3 ответа

быстрый способ записать это так:

$.myPlugin = function () {
    // Plugin code
}

правильный способ записать это так:

(function ($) {
    $.extend({
        myPlugin: function () {
            // plugin code
        }
    });
})(jQuery);

Это может показаться Сначала это немного сбивает с толку, но это обычный шаблон jQuery.

(function($){
     // Code
})(jQuery);

Этот код создает анонимную функцию и вызывает ее, передавая jQuery в качестве аргумента. Внутри функции этот аргумент привязан к $ . Причина этого в том, что он позволяет вам работать с $ , даже если jQuery работает в бесконфликтном режиме .

Вторая часть - $. расширить . По сути, он расширяет сам объект jQuery, когда вызывается с одним аргументом.

Вызов плагина (в быстром и правильном случае):

$.myPlugin();
51
ответ дан 28 November 2019 в 07:00
поделиться

Используется ли коллекция, если вы пишете что-то другое, например $ ('a'). MyPlugin () ? Если нет, то почему вы помещаете его в $. Fn ? Возможно, вы хотели внедрить его в сам jQuery .

Если он действительно работает с коллекцией, но иногда имеет смысл пустая коллекция, тогда я думаю, что ваш вызывающий должен быть $ ([]) - передача пустого массива в jQuery дает вам пустую коллекцию; ничего не передавая, похоже, вы получаете коллекцию, содержащую документ .

0
ответ дан 28 November 2019 в 07:00
поделиться

Я думаю, вы ищете jQuery.extend ():

jQuery.extend({
    func: function() {
        alert('test');
    }
});
$.func();
2
ответ дан 28 November 2019 в 07:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: