jQuery:如果URL包含#work,则执行某些操作。

21

我尝试编写一个脚本,使我能够在输入特定的URL时加载某些事件。

我的代码看起来像这样:

$(function(){
    var url = window.location.pathname;
    $("url:contains('#Work')").animate({"left": "250"}, "slow");
});

但是它不起作用。有什么建议吗?感谢任何帮助。


你不应该一开始就使用URL。 - RobotRock
2个回答

47
$(function() {
    if ( document.location.href.indexOf('#Work') > -1 ) {
        $('#elementID').animate({"left": "250"}, "slow");
    }
});

12
路过者注意:当搜索到的字符串在开头时,返回值为0;如果未找到,则返回-1。在这种情况下它能够正常工作,是因为该片段永远不会在 URL 的开头出现。但通常情况下,您应该使用> -1>= 0来搜索字符串。 - Wiseguy

11

window.location.href将URL拉入一个变量,因此您无法使用该方法搜索#Work。尝试使用以下方式:

var url = window.location.href;

if (url.search("#Work") >= 0) {
    //found it, now do something
} 

5
路人须知:搜索一个字符串,如果在开头找到则返回0,如果未找到则返回-1。在这种情况下,它能够正常工作是因为该片段永远不会出现在URL的开头,但通常你应该使用“> -1”或“>= 0”来搜索字符串。 - Wiseguy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接