С большинством вызовов функции jQuery, которые меняют выбор, можно вернуться к шагу в выборе с помощью end
. Например:Как я могу подключить плагин jQuery к концу end()?
$('#myElement').parent().show().end().css('color', '#ff0000');
Это показывает родительский элемент, а затем делает исходный выбор красным.
Однако, когда я определяю свой собственный плагин jQuery, который фильтрует выбор, я не получаю эту функцию. Например:
$.fn.nextBarOne = function(selector) {
var ret = this.next().next();
return (typeof selector === 'undefined') ? ret : ret.filter(selector);
}
Если я сейчас $('#myElement').nextBarOne().show().end()
не вернуться к первоначальному выбору. Очевидно, это связано с тем, что внутренне функция вызывает next
дважды, а затем иногда вызывает filter
.
Как я могу определить плагин jQuery, чтобы позволить мне использовать end
, как и встроенные функции?
Посмотрите на источник JQuery для "pushStack"; в основном ваш код будет называть это так же, как и функции jQuery «find», «parents» и т. д. – Pointy
plugin.showRespectTo (end); –