Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jquery] zmiana wartosci href
tomkowy
post 22.05.2010, 23:41:31
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 22.05.2010

Ostrzeżenie: (0%)
-----


witam. nie wiem czy pisze w dobrym dziale. jesli nie to prosze poprawcie mnie. mianowicie borykam sie z pewnym problemem. zrobilem sobie slider wlasnej roboty. zasada dzialania jest bardzo prosta:

przesuwamy elementy w sliderze za pomoca przyciskow strzalek lub za pomoca 3 przyciskow odpowiadajacych za 3 strony. ponizej znajduje sie przycisk ZOBACZ, w ktorym ma byc odnosnik. wszystko jest dobrze tylko nie mam pojecia jak wpisac wartosc href dla przycisku w zaleznosci od tego ktora strona slidera jest wlaczona. obrazek ZOBACZ przeladowuje sie za kazdym razem, wiec teraz tylko pytanie jak to tam wpisac tego hrefa.

moj przycisk ma klase view i potrzebuje wpisac wartosc do href.
Kod
            <a href=""><div class="view"></div></a>


dzieki za pomoc.

Ten post edytował tomkowy 22.05.2010, 23:43:45
Go to the top of the page
+Quote Post
fleshgrinder
post 23.05.2010, 01:07:55
Post #2





Grupa: Zarejestrowani
Postów: 77
Pomógł: 10
Dołączył: 4.11.2007

Ostrzeżenie: (0%)
-----


attr
Go to the top of the page
+Quote Post
tomkowy
post 23.05.2010, 01:12:47
Post #3





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 22.05.2010

Ostrzeżenie: (0%)
-----


dzieki za odpowiedz. wlasnie kurczce probowalem atrr i cos nie moge tego skumac albo cos nie gra. w swoim pliku mam zmienna currentitem dzieki ktorej wiem na ktorym slajdzie slidera jestem.

wiec mialem zrobione tak:
Kod
if(currentitem ==1)
  $('.view').parent('a').attr('href', link1);


gdzie link1 to zmienna z adresem. i niestety href nadal byl pusty. wiec nie wiem czemu tak to dziala dziwnie. probowalem tez nawet zamiast link1 pisac 'tekst', ale rowniez jest pusto pozniej i nic sie nie dzieje.
//edit. udalo mi sie rozwiazac problem tworzac 3 buttony, ktore w zalezonsci od strony pokazuja sie lub chowaja i wszystko teraz smiga tak jak nalezy.


jesli moglibyscie wyjasnic co robie zle z attr powyzszym przykladzie to bede wdzieczny winksmiley.jpg
Go to the top of the page
+Quote Post
fleshgrinder
post 23.05.2010, 01:59:54
Post #4





Grupa: Zarejestrowani
Postów: 77
Pomógł: 10
Dołączył: 4.11.2007

Ostrzeżenie: (0%)
-----


w takim razie to chyba nie problem z attr.. stworzylem taki dokument z Twoim kodem:

  1. <!DOCTYPE html>
  2. <head>
  3. <script type="text/javascript" src="jquery-1.3.1.js"></script>
  4. <title>jq</title>
  5. <script type="text/javascript">
  6. $(function() {
  7. var link1 = 'http://www.php.pl';
  8. $('.view').parent('a').attr('href', link1);
  9. });
  10. </script>
  11. </head>
  12.  
  13. <body>
  14. <a href=""><span class="view">aaa</span></a>
  15. </body>
  16. </html>


i wszystko dziala jak nalezy, po zaladowaniu strony link prowadzi do php.pl
Go to the top of the page
+Quote Post
tomkowy
post 23.05.2010, 02:17:37
Post #5





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 22.05.2010

Ostrzeżenie: (0%)
-----


no dobra. sprobowalem jeszcze raz i odziwo zadzialalo winksmiley.jpg dzieki wielkie winksmiley.jpg

a teraz tak, mam tutaj moj dotychczasowy kod i sie go troche nazbiearalo i sie tak zastanawiam czy czasem nie mozna go jakos skrocic troche. zastanawiam sie czy mozna niektore rzeczy obejsc jakos inaczej.

Kod
//functions.js

$(document).ready(function(){

/* SLIDER [1][2][3] */




    var currentitem = 1;
    
    
    $('#p1').css('background-position','0px -25px');
    $('.view').css('margin-top','0px');    
    $('.view').parent('a').not('a[href="featured1.html"]').hide();
    
    $('#p1').click(function(){
        if(currentitem == 2 || currentitem == 3){
            $('#items li').animate({left: "0px"},450);
            currentitem = 1;
            $('.view').parent('a[href="featured2.html"]').hide();
            $('.view').parent('a[href="featured3.html"]').hide();
            $('.view').parent('a[href="featured1.html"]').show();
        };
    });
    
    $('#p2').click(function(){
        if( currentitem == 1 || currentitem == 3){
            $('#items li').animate({left: "-740px"},450);
            currentitem = 2;
            $('.view').parent('a[href="featured1.html"]').hide();
            $('.view').parent('a[href="featured3.html"]').hide();
            $('.view').parent('a[href="featured2.html"]').show();
        };

    });
    
    $('#p3').click(function(){
        if( currentitem == 2 || currentitem == 1){
            $('#items li').animate({left: "-1480px"},450);
            currentitem = 3;
            $('.view').parent('a[href="featured2.html"]').hide();
            $('.view').parent('a[href="featured1.html"]').hide();
            $('.view').parent('a[href="featured3.html"]').show();
        };
    });
    
/* koniec */


/* SLIDER < [   ] >  */

    $('#rightarrow').click(function(){
        if(currentitem == 1){
            $('.view').parent('a[href="featured2.html"]').hide();
            $('.view').parent('a[href="featured3.html"]').hide();
            $('.view').parent('a[href="featured1.html"]').show();
            $('#items li').animate({left: "-740px"},450);
            $('#pages ul').children('li').css('background-position','0px 0px');
            currentitem = 2;
            $('#pages ul').children('#p2').css('background-position','0px -25px').stop();
            $('.view').parent('a[href="featured1.html"]').hide();
            $('.view').parent('a[href="featured3.html"]').hide();
            $('.view').parent('a[href="featured2.html"]').show();
            break;
            
        };

        if(currentitem == 2){
            $('.view').parent('a[href="featured1.html"]').hide();
            $('.view').parent('a[href="featured3.html"]').hide();
            $('.view').parent('a[href="featured2.html"]').show();
            $('#items li').animate({left: "-1480px"},450);
            $('#pages ul').children('li').css('background-position','0px 0px');
            currentitem = 3;
            $('#pages ul').children('#p3').css('background-position','0px -25px').stop();
            $('.view').parent('a[href="featured1.html"]').hide();
            $('.view').parent('a[href="featured2.html"]').hide();
            $('.view').parent('a[href="featured3.html"]').show();
            break;
        };        
        
        if(currentitem == 3){
            $('.view').parent('a[href="featured1.html"]').hide();
            $('.view').parent('a[href="featured2.html"]').hide();
            $('.view').parent('a[href="featured3.html"]').show();
            $('#items li').animate({left: "0px"},450);
            $('#pages ul').children('li').css('background-position','0px 0px');
            currentitem = 1;
            $('#pages ul').children('#p1').css('background-position','0px -25px').stop();
            $('.view').parent('a[href="featured2.html"]').hide();
            $('.view').parent('a[href="featured3.html"]').hide();
            $('.view').parent('a[href="featured1.html"]').show();
            break;
        };    
    });
    
    $('#leftarrow').click(function(){
        if(currentitem == 3){
            $('.view').parent('a[href="featured1.html"]').hide();
            $('.view').parent('a[href="featured2.html"]').hide();
            $('.view').parent('a[href="featured3.html"]').show();
            $('#items li').animate({left: "-740px"},450);
            $('#pages ul').children('li').css('background-position','0px 0px');
            currentitem = 2;
            $('.view').parent('a[href="featured1.html"]').hide();
            $('.view').parent('a[href="featured3.html"]').hide();
            $('.view').parent('a[href="featured2.html"]').show();
            $('#pages ul').children('#p2').css('background-position','0px -25px').stop();
            break;
        };
        
        if(currentitem == 2){
            $('.view').parent('a[href="featured1.html"]').hide();
            $('.view').parent('a[href="featured3.html"]').hide();
            $('.view').parent('a[href="featured2.html"]').show();
            $('#items li').animate({left: "0px"},450);
            $('#pages ul').children('li').css('background-position','0px 0px');
            currentitem = 1;
            $('#pages ul').children('#p1').css('background-position','0px -25px').stop();
            $('.view').parent('a[href="featured2.html"]').hide();
            $('.view').parent('a[href="featured3.html"]').hide();
            $('.view').parent('a[href="featured1.html"]').show();
            break;
        };    

        if(currentitem == 1){
            $('.view').parent('a[href="featured2.html"]').hide();
            $('.view').parent('a[href="featured3.html"]').hide();
            $('.view').parent('a[href="featured1.html"]').show();
            $('#items li').animate({left: "-1480px"},450);
            $('#pages ul').children('li').css('background-position','0px 0px');
            currentitem = 3;
            $('#pages ul').children('#p3').css('background-position','0px -25px').stop();
            $('.view').parent('a[href="featured1.html"]').hide();
            $('.view').parent('a[href="featured2.html"]').hide();
            $('.view').parent('a[href="featured3.html"]').show();
            break;
        };    
    
    });

/* koniec */

/* ZMIANA WYGLADU PAGES [1][2][3] po kliknieciu ktoregos */
    $('#pages ul').children('li').click(function(){
        $(this).css('background-position','0px -25px');
        $('#pages ul').children('li').not(this).css('background-position','0px 0px').stop();
    });

/* koniec */


    

});
Go to the top of the page
+Quote Post
fleshgrinder
post 23.05.2010, 14:07:51
Post #6





Grupa: Zarejestrowani
Postów: 77
Pomógł: 10
Dołączył: 4.11.2007

Ostrzeżenie: (0%)
-----


wyglada ok smile.gif

tak na szybko patrzac dwie rzeczy bym zmienil:

1. czesto powtarza Ci sie w kodzie wyszukiwanie $('.view').parent('a[href="featured1.html"]').
optymalniej byloby umiescic gdzies w globalnej przestrzeni np. var featured1 = $('.view').parent('a[href="featured1.html"]'); i pozniej odwolywac sie juz do zmiennej, dzieki temu skrypt bedzie dzialal szybciej (korzystanie z referencji zamiast ciaglego wyszukiwania od nowa), a i kod bedzie troche bardziej przejrzysty

2. generalnie lepiej w js uzywac porownan === zamiast ==. dzieki temu masz jakas kontrole typow, latwiej wykryc dziwne zachowanie aplikacji i poniewaz skrypt nie musi dokonywac rzutowania, calosc dziala odrobine szybciej. o tym i paru innych kwestiach mowil Douglas Crockford na swojej prezentacji google tech talk (polecam)
Go to the top of the page
+Quote Post
tomkowy
post 23.05.2010, 14:33:30
Post #7





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 22.05.2010

Ostrzeżenie: (0%)
-----


dzieki bardzo fleshgrinder winksmiley.jpg myslalem ze ten kod to jeden wielki smietnik i ze sie da jakos normalnie to zapisac winksmiley.jpg udalo sie metoda prob i bledow ;p to poprawie to i bedzie okej. a jeszcze jedno glupie pytanie. jestem zielony i sam sie ucze wiec nie po kolei. wiec jak bede mial to featured 1 = .....; to pozniej jesli bede sie chcial odwolac do zmiennej i zrobic .hide(); to mam napisac :

Kod
$(featured1).hide(); czy
featured1.hide();


questionmark.gif
Go to the top of the page
+Quote Post
fleshgrinder
post 23.05.2010, 18:17:20
Post #8





Grupa: Zarejestrowani
Postów: 77
Pomógł: 10
Dołączył: 4.11.2007

Ostrzeżenie: (0%)
-----


[JAVASCRIPT] pobierz, plaintext
  1. featured1.hide();
[JAVASCRIPT] pobierz, plaintext


dlatego, ze jesli:
var featured1 = $('.view').parent('a[href="featured1.html"]');
to featured1.hide(); oznacza to samo, co $('.view').parent('a[href="featured1.html"]').hide();
Go to the top of the page
+Quote Post
tomkowy
post 23.05.2010, 21:39:28
Post #9





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 22.05.2010

Ostrzeżenie: (0%)
-----


dzieki bardzo za pomoc winksmiley.jpg
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 31.07.2025 - 10:32