Thread View: pl.comp.lang.javascript
7 messages
7 total messages
Started by misiek
Thu, 02 Jul 2009 20:17
[jquery]Dezaktywacja <a>
Author: misiek
Date: Thu, 02 Jul 2009 20:17
Date: Thu, 02 Jul 2009 20:17
37 lines
1912 bytes
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>
Author: misiek
Date: Fri, 03 Jul 2009 01:55
Date: Fri, 03 Jul 2009 01:55
32 lines
1521 bytes
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>
Author: Paweł Piskorz
Date: Sat, 04 Jul 2009 13:19
Date: Sat, 04 Jul 2009 13:19
36 lines
1785 bytes
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>
Author: misiek
Date: Tue, 07 Jul 2009 16:33
Date: Tue, 07 Jul 2009 16:33
74 lines
3650 bytes
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>
Author: Paweł Piskorz
Date: Tue, 07 Jul 2009 23:05
Date: Tue, 07 Jul 2009 23:05
12 lines
1257 bytes
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>
Author: misiek
Date: Tue, 07 Jul 2009 23:54
Date: Tue, 07 Jul 2009 23:54
34 lines
1823 bytes
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>
Author: Michał Kuliś
Date: Wed, 07 Oct 2009 12:55
Date: Wed, 07 Oct 2009 12:55
46 lines
2382 bytes
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