2011-02-09 10 views
25

Mam skrypt jak poniżejiść do łączenia na kliknięcia przycisku - jquery

$('.button1').click(function() { 
    document.location.href=$(this).attr('id'); 
}); 

button1 ma zmienne unikalne identyfikatory. po kliknięciu strona musi przekierować do adresu URL "www.example.com/index.php?id=buttonid", ale teraz strona przekierowuje tylko na "button id".

Chcę dodać ciąg "www.example.com/index.php?id=" przed bieżącym adresem URL. Jak mogę to zrobić?

Odpowiedz

55
$('.button1').click(function() { 
    window.location = "www.example.com/index.php?id=" + this.id; 
}); 

Przede wszystkim użycie window.location jest lepsze, ponieważ zgodnie ze specyfikacją document.location wartość była tylko do odczytu i może powodować bóle głowy w starszych/różnych przeglądarkach. Sprawdzić notatki @MDC DOM document.location page

a drugiej - za pomocą attr metody jQuery uzyskać identyfikator jest złą praktyką - należy użyć bezpośredniego natywną DOM akcesor this.id jako wartość przypisanego do this jest normalne elementu DOM.

+0

Dziękuję bardzo mój przyjacielu ... :) –

+0

+1 za to, że pierwszy zasugerował window.location i this.id, poszedłem z moją odpowiedzią szybko bez nich;) – Sarfraz

+0

@Sarfraz okrzyki chłopcze ! –

2

Dlaczego nie wystarczy zmienić drugą linię do

document.location.href="www.example.com/index.php?id=" + $(this).attr('id'); 
+0

Dzięki ... to działa .. :) –

+0

@blasteralfred Sprawdź moją odpowiedź na kilka wskazówek i dobrych praktyk –

4

Trzeba aby określić domenę:

$('.button1').click(function() { 
    window.location = 'www.example.com/index.php?id=' + this.id; 
}); 
+0

Dzięki ... to działa .. :) –

+0

@blasteralfred: Witam :) – Sarfraz

+0

href jest niepotrzebna i patrzeć na moją odpowiedź, aby zobaczyć więcej informacji na temat rzeczy, które mogłyby być zrobione lepiej –

5
$('.button1').click(function() { 
    document.location.href='/index.php?id=' + $(this).attr('id'); 
}); 
Powiązane problemy