jquery, messi a 'this' vo funkcii

Programovacie jazyky, rady, poradňa...
G0lDiER_
King
King
Používateľov profilový obrázok
Príspevky: 1948
Registrovaný: 16 máj 2007, 16:09
Bydlisko: Topolcany
Kontaktovať používateľa:

jquery, messi a 'this' vo funkcii

Príspevok od používateľa G0lDiER_ »

caute, snazim sa poskladat nieco s jquery. pouzivam tento plugin
http://marcosesperon.es/apps/messi/
mam takyto nejaky kod:

Kód: Vybrať všetko

$(\".delete\").click(function () {
                              new Messi('Chceš naozaj zmazať zmazať tento záznam?', {width: '400px', title: 'Zmazať záznam', buttons: [{id: 0, label: 'Áno', val: 'A'}, {id: 1, label: 'Nie', val: 'N'}],
                                   callback: function(val) {
                                        if (val == 'A') {
                                             $(this).hide();
                                        }
                                   }
                              });
                         });
ten $(this).hide mi neberie, chcem aby to odkazovalo na ten $('.delete') ktory bol kliknuty. ako to fixnem? dakujem.
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: jquery, messi a 'this' vo funkcii

Príspevok od používateľa weroro »

Toto si skúsil?

Kód: Vybrať všetko

var tmp;
$(\".delete\").click(function (){
tmp = this;
new Messi('Chceš naozaj zmazať zmazať tento záznam?', {width: '400px',title: 'Zmazať záznam', buttons: [{id: 0, label: 'Áno', val: 'A'}, {id: 1, label: 'Nie', val: 'N'}],
          callback: function(val) {
            if (val == 'A') {
              $(tmp).hide();
              tmp = '';
              }
          }
    });
});
TommyHot
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3340
Registrovaný: 25 okt 2009, 0:23
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: jquery, messi a 'this' vo funkcii

Príspevok od používateľa TommyHot »

weroro neviem preco deklarujes premennu mimo click callbacku? Fungovat to sice bude, ale je to zbytocne. Btw odporucam pouzivat klucove slovo self, alebo _this, sice je jedno ako si to nazves, ale je to velavravnejsie...
awtt
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1234
Registrovaný: 01 nov 2006, 19:37
Bydlisko: San Francisco
Kontaktovať používateľa:

Re: jquery, messi a 'this' vo funkcii

Príspevok od používateľa awtt »

Ako vravi TommyHot, tu deklaraciu si daj urcite dovnutra eventu, takto si z nej spravil globalnu (ak to nema este zawrapovane), a urcite ju nazvy inac.
Mozes to rovno spravit aj takto:

Kód: Vybrať všetko

var $this = $(this);
...
$this.hide();
G0lDiER_
King
King
Používateľov profilový obrázok
Príspevky: 1948
Registrovaný: 16 máj 2007, 16:09
Bydlisko: Topolcany
Kontaktovať používateľa:

Re: jquery, messi a 'this' vo funkcii

Príspevok od používateľa G0lDiER_ »

Takze v tej clici funkcii var self=$(this); a potom to uz v tej druhej funkcii pouzivam ako $(self), hej?
Mne sa zda ze som to tak skusal, ale mozno som to mal trochu inak. Skusim ked budem na pc. Diky zatim.
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: jquery, messi a 'this' vo funkcii

Príspevok od používateľa weroro »

Ja som ju urobil ako globálnu schválne. Mal som asi nesprávny predpoklad, že ten callback, ktorý patrí objektu Messi nevie zamerať premenné deklarované v onclicku.
awtt
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1234
Registrovaný: 01 nov 2006, 19:37
Bydlisko: San Francisco
Kontaktovať používateľa:

Re: jquery, messi a 'this' vo funkcii

Príspevok od používateľa awtt »

Ak si das self = $(this) tak uz ti staci self.hide();
TommyHot
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3340
Registrovaný: 25 okt 2009, 0:23
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: jquery, messi a 'this' vo funkcii

Príspevok od používateľa TommyHot »

Ak v jQuery ukladas do premennej jQuery objekt, tak urcite davaj premennu s dolarom na zaciatku (kvoli prehladnosti), v opacnom pripade bez dolaru.

Priklad:

Kód: Vybrať všetko

var $self = $(this),
     self = this;

$self.metoda();
$(self).metoda()
//awtt faster
G0lDiER_
King
King
Používateľov profilový obrázok
Príspevky: 1948
Registrovaný: 16 máj 2007, 16:09
Bydlisko: Topolcany
Kontaktovať používateľa:

Re: jquery, messi a 'this' vo funkcii

Príspevok od používateľa G0lDiER_ »

super hosi fachci to. mne sa zda ze som to tak aj nejak robil, ale asi som to nejak pomotal. mozno budem mat este trosku problemy s ajaxom, tak potom napisem. inak existuje nejaky javascript (jquery) plugin na strucnejsie pisanie ajaxu?
TommyHot
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3340
Registrovaný: 25 okt 2009, 0:23
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: jquery, messi a 'this' vo funkcii

Príspevok od používateľa TommyHot »

Ake strucnejsie?

Kód: Vybrať všetko

$.ajax({
 url: '', 
 data: {}, 
 success: function(){
 }
});
Mas pocit, ze moze byt nieco jednoduchsie ako toto?
G0lDiER_
King
King
Používateľov profilový obrázok
Príspevky: 1948
Registrovaný: 16 máj 2007, 16:09
Bydlisko: Topolcany
Kontaktovať používateľa:

Re: jquery, messi a 'this' vo funkcii

Príspevok od používateľa G0lDiER_ »

jaaj tak tu uz fakt nie je co zjednodusovat.
ja som sa venoval zakladnemu ajaxu http://www.w3schools.com/ajax/default.asp
Napísať odpoveď