🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.javascript
Article #49131

Re: [jquery]Dezaktywacja <a>

#49131
From: misiek
Date: Tue, 07 Jul 2009 16:33
74 lines
3650 bytes
Paweł Piskorz pisze:
[...]
> Na pytanie sam sobie odpowiedziałeś, ale i tak pozwolę sobie na kilka
> uwag :)
> 
> Nie musisz używać each, to nie prototype*:
> $(document).ready(function(){
>   $("a.thumb").bind("click", function(e){
>     var tmp = $(this).attr("href");
>     $("img.zmiana").attr({src: tmp});
>   });
> });

Wczesniej zrezygnowalem z each, ale cos nie chcialo dzialac. Inaczej - 
dzialalo w taki sposob, ze wszystkie <a> po kliknieciu, wstawialy 
obrazek z pierwszego <a>, zamiast z odpowiedniego dla siebie hrefa. 
Zapewne cos zle zrobilem :).

Korzystajac z okazji, wiesz moze jak sprawic, aby po kazdej zmianie 
tresci na nowo poustawiac bindy? Tresc sie zmienia poprzez zapytania 
Ajaxowe. Zdaje sobie sprawe, ze trzeba to zrobic po kazdej udanej 
podmiane, jednak nie wiem jak osiagnac taki efekt dla "nieskonczonej" 
liczby wywolan tego zapytania Ajaxowego.

Mam takie cos (lub tu: http://pastebin.com/m3afd10cb ):

$().ready(function (){
   $("div.nawi a").each( function(i) {
     $(this).unbind("click");
     $(this).bind("click", function(e){
       var tmp = $(this).attr("href");
       var search_wynik_zapytania = tmp.search(/\?/);
       var wynik_url = tmp.substring(0,search_wynik_zapytania);
       var wynik_data = tmp.substring(search_wynik_zapytania+1,tmp.length);
       e.preventDefault();
       $.ajax({
                 url: wynik_url,
                 data: wynik_data + '&ajax=1',
                 type: 'GET',
                 success: function(results) {
                     $("div.ajax_here").html(results);
            	    $("div.nawi a").each( function(i) {
                     $(this).unbind("click");
                     $(this).bind("click", function(e){
                     var tmp = $(this).attr("href");
                     var search_wynik_zapytania = tmp.search(/\?/);
                     var wynik_url = 
tmp.substring(0,search_wynik_zapytania);
                     var wynik_data = 
tmp.substring(search_wynik_zapytania+1,tmp.length);
                     e.preventDefault();
                     $.ajax({
                         url: wynik_url,
                         data: wynik_data + '&ajax=1',
                         type: 'GET',
                         success: function(results) {
                             $("div.ajax_here").html(results);
                         }
                 });
             });
           });
          }
         });
     });
   });
});

Powyzsze dziala do dwoch kolejnych wywolan ajaxownych. Kolejne - trzecie 
osiagnalbym kopiujac znowu zawartosc calej funkcji (na pastebinie na 
zolto) do parametru success, ale chyba nie tedy droga, bo co dla 
czterech, pieciu itd....

Pozdrawiam,
misiek
Technical Details
Message-ID: <h2vtdd$ct7$1@achot.icm.edu.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news2.icm.edu.pl!not-for-mail
References: <h2j4ll$aq2$1@achot.icm.edu.pl> <h2nksm$efu$1@inews.gazeta.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news2.icm.edu.pl!not-for-mail
From: misiek <misiek@biegun.N>
Newsgroups: pl.comp.lang.javascript
Subject: Re: [jquery]Dezaktywacja <a>
Date: Tue, 07 Jul 2009 18:33:51 +0200
Organization: http://news.icm.edu.pl/
Lines: 74
Message-ID: <h2vtdd$ct7$1@achot.icm.edu.pl>
References: <h2j4ll$aq2$1@achot.icm.edu.pl> <h2nksm$efu$1@inews.gazeta.pl>
NNTP-Posting-Host: chello089075165005.chello.pl
Mime-Version: 1.0
X-Trace: achot.icm.edu.pl 1246984429 13223 89.75.165.5 (7 Jul 2009 16:33:49 GMT)
X-Complaints-To: abuse@icm.edu.pl
NNTP-Posting-Date: Tue, 7 Jul 2009 16:33:49 +0000 (UTC)
In-Reply-To: <h2nksm$efu$1@inews.gazeta.pl>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.9) Gecko/20071031 Thunderbird/2.0.0.9 Mnenhy/0.7.5.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit