Подтвердить что ты не робот

Расширение плагина jQuery

Кто-нибудь расширил существующий плагин jQuery?

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

Или мне приснилось, что это имеет смысл сделать это?

4b9b3361

Ответ 1

EDIT: Как отметил Seb, это не является строго примером "расширения" плагина, более "инкапсулирующего" плагин, поэтому возьмите его, как он есть:)

Здесь я сделал что-то, чтобы упростить использование jquery autocomplete plugin:

// small autocomplete plugin wrapping the full autocomplete plugin for a standard look and feel
(function($) {
    $.fn.standardAutocomplete = function(type) {
        return this.autocomplete(ToAbsoluteUrl("~/System/Autocomplete/" + type), {
            formatItem: formatItem,
            formatResult: formatResult
        });
        // Autocomplete formatting callbacks
        function formatItem(row) { return row[0] + "<span class=\"sub\">" + row[1] + "</span>"; }
        function formatResult(row) { return row[0].replace(/(<.+?>)/gi, ''); }
    }
})(jQuery);

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

Ответ 2

Если плагин хорошо выполнен, у вас нет много альтернатив, кроме использования options, чтобы изменить его поведение.

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

Если вам действительно нужно изменить свое поведение, то, думаю, вам нужно будет скопировать и вставить код.