2011-01-06 18 views
19

Używam jquerymobile dla aplikacji, którą tworzę. Mam link, że jeśli przejdzie wszystkie zatwierdzenia, chciałbym przejść, ale jeśli coś zawiedzie, chciałbym przekierować.Przekierowanie za pomocą jQuery

W jquery coś takiego. Ponieważ jest to jquerymobile, link będzie nowym div na tej samej stronie index.html - jeśli to pomoże.

$(#link).click(function(){ 
    if(validation_fails) link_elsewhere; 
    else return true; 
} 
+0

to naprawdę jest tylko javascript, nic tak naprawdę dzieje się z jquery – jondavidjohn

Odpowiedz

1

Można hash id div do window.location, aby wyświetlić div. Coś jak:

$(#link).click(function(){ 
    if(validation_fails) window.location += "#<YOUR_DIV_ID>" ; 
    else return true; 
} 
13

można wykorzystać JavaScript na rodzimywindow.location

$('#link').click(function(){ 

    if(validation_fails) { 
     window.location="http://this.site.com/"; 
    } 
    else { 
     return true; 
    } 
} 
1
$(#link).click(function(){ 
    if(validation_fails){ 
    var loc = window.location; 
    window.location = loc.protocol+"//"+loc.hostname+loc.pathname+"#somedivid"; 
    } else return true; 
} 

Trzeba dodatkowy kod Beyond @ Cybermate odpowiedź bo inaczej będziesz trzymać dołączanie hash za każdym razem zawiedzie, np "Http://foo.com/bar#whee", a następnie "" http://foo.com/bar#whee#whee”itp

Edit: Jeśli może być używany port, można warunkowo zawierają go:

window.location = loc.protocol + "//" + loc.hostname + 
        (loc.port && ":"+loc.port) + 
        loc.pathname + "#somedivid"; 
+0

loc.port mogą być stosowane, gdy numer portu potrzebne. –

Powiązane problemy