Dajmy na to że mam coś takiego w head strony głównej:
$('div:jakis').podpisz();
Do tego dołączony jest plik script.js z kodem funkcji która ma dodać podpis pod tym divem.
O ile wiem jak zrobić coś takiego gdy div będzie parametrem podpisz(‘div:jakis’) to nie wiem jak to wykonać w formie przedrostka? #-o
Oh, dziękuje za tą wspaniałą poradę…
kolory.js
(function($) {
$.fn.kolory = function(options) {
options = $.extend({
}, options);
return this.each(function() {
this.css({'color' : 'red'});
});
}
})(jQuery);
index
(...)
TESTY TESTY TESTY
[/code]
B.Andy
(B.Andy)
3 Marzec 2013 12:23
#4
Podałem zapytanie do google, które w pierwszym wyniku daje konkretną odpowiedź na Twoje pytanie, czemu nie zrobiłeś tego jak tam piszą?
$.fn.Kolory = function() {
return $(this).css({'color' : 'red'});
}
$(function() {
$(".kolory").Kolory();
});
Działa. W Twoim kodzie źle używasz this . Aby odnieść się do jQuery trzeba uzyć $(this) (tak jak w pierwszym linku). Poza tym po co each? Przecież wywołując $(".kolory").Kolory(); jQuery automatycznie wybierze wszystkie elementy ze strony i wywoła na nich tę funkcję
Dzięki, a jak to napisać gdy będę chciał pod tą funkcją parę eventów? Chodzi mi tu o return.
B.Andy
(B.Andy)
3 Marzec 2013 18:14
#6
$(this).css({'color' : 'red'});
$(this).css({'font-size' : '30px'});
return $(this);
Chodzi mi raczej o to gdy będzie np. click i dblclick i one zmieniają/dodają jakieś tam cssy. Wtedy też dawać return $(this)?
B.Andy
(B.Andy)
3 Marzec 2013 19:28
#8
$(this).click(function() {
$(this).css({'color' : 'blue'});
});
return $(this);
Bez zwracania elementu kod nie będzie działał czasem poprawnie, np. bez return $(this)
$(".box").Kolory().css({'color' : 'red'});
nie zadziała odpowiednio
Nie do końca o to mi chodziło. Nie miałem jak sprawdzić czy zadziała coś takiego.
$(this).click(function() {
$(this).css({'color' : 'red'});
});
$(this).dblclick(function() {
$(this)/dblclick({'color' : 'black'});
});
return ($this);