Как передать элемент в переменную из функции
Сразу извиняюсь за терминологию, просто с JQ недавно общаюсь.
Собственно, вопрос в следующем. Написан плагин, следующей конструкции: (function( $ ){ var fun = { create : function(){ return this.each(function(){ var $this = $(this); $this.wrap('<div title="dasd"></div>'); var $box = $this.parent();//вот нужный элемент $box.append('<span>f</span>'); return $box; }); }, } $.fn.inputX = function(comm) {return fun[comm].apply(this, Array.prototype.slice.call( arguments, 1 ));} })( jQuery ); Никак не могу при вызове плагина, передать в переменную элемент созданный плагином, см. листинг ниже /*собственн ТУТ то и возникает вопрос, как переменной inX передать элемент плагина $box */ var inX = $('#law input').inputX('create'); /*чтобы потом можно было обращаться, например, так*/ inX.css('background', '#000') Или это не возможно, просто с JS мало дружу? Заранее благодарен. |
Метод .each не модифицирует набор, так что возвращать $box бесполезно. Сделай по-другому.
|
Цитата:
|
Вообще говоря, то, что ты хочешь сделать неправильно, потому что плагин должен возвращать набор matched elements, чтобы можно было делать цепочки вызовов. Поэтому писать плагин, который почему-то возвращает что-то еще - неверно концептуально.
Но в данном случае если сильно хочется, можно конечно извратиться. Скажем: create : function() { this.each(function(){ var $this = $(this); $this.wrap('<div title="dasd"></div>'); var $box = $this.parent();//вот нужный элемент $box.append('<span>f</span>'); }); return this.parent(); } |
Часовой пояс GMT +3, время: 15:49. |