🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.javascript
7 messages
7 total messages Started by misiek Thu, 02 Jul 2009 20:17
[jquery]Dezaktywacja <a>
#49128
Author: misiek
Date: Thu, 02 Jul 2009 20:17
37 lines
1912 bytes
Witam,

Mam taki kod:

<script type="text/javascript">

$(document).ready(function (){
   $("a.thumb").each( function(i) {
     $(this).bind("click", function(){
       var tmp = $(this).attr("href");
       $("img.zmiana").attr({src: tmp});
     });
   });
});
</script>

oraz

<img class="zmiana" src="http://mojastrona.pl/1.jpg" />
<p>
<a class="thumb" href="http://mojastrona.pl/1.jpg"><img class="thumb" 
src="http://mojastrona.pl/1.jpg"></a>
<a class="thumb" href="http://mojastrona.pl/2.jpg"><img class="thumb" 
src="http://mojastrona.pl/2.jpg"></a>
<a class="thumb" href="http://mojastrona.pl/8.jpg"><img class="thumb" 
src="http://mojastrona.pl/8.jpg"></a>
<a class="thumb" href="http://mojastrona.pl/9.jpg"><img class="thumb" 
src="http://mojastrona.pl/9.jpg"></a>
</p>

Pytanie: co zrobic, aby klikniecie w linka nie powodowalo przejscia do 
innej strony? Zdaje sobie sprawe, ze <a> wlasnie do tego sluzy, jednak 
chcialbym osiagnac opisany efekt. <a> zostawiam sobie na wypadek braku 
obslugi JS w przegladarce. # w href, nie rozwiazuje sprawy...

Pozdrawiam,
misiek
Re: [jquery]Dezaktywacja <a>
#49129
Author: misiek
Date: Fri, 03 Jul 2009 01:55
32 lines
1521 bytes
misiek pisze:

Odpowiem sobie:).

> <script type="text/javascript">
> 
> $(document).ready(function (){
>   $("a.thumb").each( function(i) {
>     $(this).bind("click", function(){
>       var tmp = $(this).attr("href");
>       $("img.zmiana").attr({src: tmp});
>     });
>   });
> });
> </script>
> 

Trzeba dodac e.preventDefault();, gdzie e jest przekazywane w funkcji 
podczepionej do klikniecia.

$(document).ready(function (){
   $("a.thumb").each( function(i) {
     $(this).bind("click", function(e){
       var tmp = $(this).attr("href");
       e.preventDefault();
       $("img.zmiana").attr({src: tmp});
     });
   });
});

Pozdrawiam,
misiek
Re: [jquery]Dezaktywacja <a>
#49130
Author: Paweł Piskorz
Date: Sat, 04 Jul 2009 13:19
36 lines
1785 bytes
misiek pisze:
> $(document).ready(function (){
>   $("a.thumb").each( function(i) {
>     $(this).bind("click", function(){
>       var tmp = $(this).attr("href");
>       $("img.zmiana").attr({src: tmp});
>     });
>   });
> });

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});
  });
});

A nawet możesz zrezygnować z $(document).ready:
$("a.thumb").live("click", function(e){
  var tmp = $(this).attr("href");
  $("img.zmiana").attr({src: tmp});
});


* nie wiem czy dobrze pamiętam, ale w prototype właśnie trzeba się
pałować z eachem.


-- 
message[autor="PablO"]::after {
	content:"Pozdrawiam";
}
Re: [jquery]Dezaktywacja <a>
#49131
Author: 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
Re: [jquery]Dezaktywacja <a>
#49132
Author: Paweł Piskorz
Date: Tue, 07 Jul 2009 23:05
12 lines
1257 bytes
misiek pisze:
> Korzystajac z okazji, wiesz moze jak sprawic, aby po kazdej zmianie
> tresci na nowo poustawiac bindy?

Korzystać z live i ustawiać tylko raz:
http://docs.jquery.com/Events/live#typefn


-- 
message[autor="PablO"]::after {
	content:"Pozdrawiam";
}
Re: [jquery]Dezaktywacja <a>
#49133
Author: misiek
Date: Tue, 07 Jul 2009 23:54
34 lines
1823 bytes
Paweł Piskorz pisze:
> misiek pisze:
>> Korzystajac z okazji, wiesz moze jak sprawic, aby po kazdej zmianie
>> tresci na nowo poustawiac bindy?
> 
> Korzystać z live i ustawiać tylko raz:
> http://docs.jquery.com/Events/live#typefn
> 
> 
Dzieki!

Dla potomnych:

$(document).ready(function (){
   $("div.nawi a").live("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);                  	 
          		
     		}
     	});
   });
});

Pozdrawiam,
misiek
Re: [jquery]Dezaktywacja <a>
#49134
Author: Michał Kuliś
Date: Wed, 07 Oct 2009 12:55
46 lines
2382 bytes
Bardzo ładny kod.

Pozdrawiam "Sekcja Body"!




Użytkownik "misiek" <misiek@biegun.N> napisał w wiadomości 
news:h2j4ll$aq2$1@achot.icm.edu.pl...
> Witam,
>
> Mam taki kod:
>
> <script type="text/javascript">
>
> $(document).ready(function (){
>   $("a.thumb").each( function(i) {
>     $(this).bind("click", function(){
>       var tmp = $(this).attr("href");
>       $("img.zmiana").attr({src: tmp});
>     });
>   });
> });
> </script>
>
> oraz
>
> <img class="zmiana" src="http://mojastrona.pl/1.jpg" />
> <p>
> <a class="thumb" href="http://mojastrona.pl/1.jpg"><img class="thumb" 
> src="http://mojastrona.pl/1.jpg"></a>
> <a class="thumb" href="http://mojastrona.pl/2.jpg"><img class="thumb" 
> src="http://mojastrona.pl/2.jpg"></a>
> <a class="thumb" href="http://mojastrona.pl/8.jpg"><img class="thumb" 
> src="http://mojastrona.pl/8.jpg"></a>
> <a class="thumb" href="http://mojastrona.pl/9.jpg"><img class="thumb" 
> src="http://mojastrona.pl/9.jpg"></a>
> </p>
>
> Pytanie: co zrobic, aby klikniecie w linka nie powodowalo przejscia do 
> innej strony? Zdaje sobie sprawe, ze <a> wlasnie do tego sluzy, jednak 
> chcialbym osiagnac opisany efekt. <a> zostawiam sobie na wypadek braku 
> obslugi JS w przegladarce. # w href, nie rozwiazuje sprawy...
>
> Pozdrawiam,
> misiek 
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads