2011-01-06 68 views
19

所以,我正在使用jquerymobile创建一个应用程序。我有一个链接,如果所有验证通过我想要通过,但如果失败,我想重定向。使用jQuery重定向

在jQuery的东西是这样的。由于它是jquerymobile,链接将在同一个index.html页面上成为一个新的div - 如果有帮助的话。

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

这真的只是javascript,没有什么真正与jquery。 – jondavidjohn 2011-01-06 03:45:03

回答

1

您可以哈希DIV ID给window.location的显示DIV。 喜欢的东西:

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

您可以使用JavaScript的本地window.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; 
} 

你需要额外的代码超越@ Cyber​​mate的答案,因为否则你会保持每次它追加哈希失败,例如“http://foo.com/bar#whee”,然后 “” http://foo.com/bar#whee#whee”等

编辑: 如果可能被使用的端口,你可以有条件地包括它:

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

loc.port可用于需要端口号时 – 2012-11-03 10:04:52