Как передать элемент в переменную из функции
Сразу извиняюсь за терминологию, просто с 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, время: 18:24. |