Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] Problem z pluginem
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Riggs
Witam,
otóż tworzę plugin który w domyśle ma wykonywać pewne operacje na tekście.
Standardowa budowa pluginu to:
Kod
   1. (function($){  
   2.  $.fn.doSomething = function() {  
   3.  
   4.     return this.each(function() {  
   5.  
   6.     });  
   7.  };  
   8. })(jQuery);

Póki bawiłem się z obiektami itp to było fajnie. Teraz chcę zrobić tak, aby przy wywołaniu pluginu np:
Kod
$("#elem").doSomethind("opt1");

zwróciło to string a nie obiekt (dokładnie chcę wykonać operacje na wartości elementu val() ale nie zmieniać jej tylko zwrócić jako string, oczywiście do zmiennej albo do html() jakiegoś innego elementu). Chciałbym też zachować możliwość chainingu czyli np:
Kod
var processedValue = $("#elem").doSomething("opt1").doSometing("opt2", "op2");

Ktoś ma jakieś pomysły, doświadczenia? Będę bardzo wdzięczny za wszelką pomoc bo jest to sprawa dość pilna w mojej pracy magisterskiej którą doprowadzam już do końca i to jest praktycznie ostatni element który mi został.
Pozdrawiam.
smentek
Jezeli chcesz aby twój plugin zwracał string zadbaj o to aby po operatorze return natępował ten własnie typ.
  1. (function($){
  2. $.fn.doSomething = function() {
  3.  
  4. return 'bla bla bla';
  5. };
  6. })(jQuery);


Aby zachować "włąściwości chainingu" musisz zwracać obiekt jquery (w praktyce obiekt na którym pracujesz, czyli this), W innym przypadku nie będziesz mógł wywołać kolejnych metod. Nie da się tego obejść. Być może plugin nie jest tym czego tak naprawdę potrzebujesz.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.