0

我正在尝试在继续之前检查 url 中的哈希是否包含某个值,我有一个像这样工作的函数:

$(window).load(function () {
    var hash = window.location.hash,
        number = $(hash).index(),
        width = 403,
        final = width * number;
        setTimeout(function () {
        $('.news-inner-wrap').animate({
            'marginLeft': "-=" + final + "px"
        });
        }, 1000);
});

因此,如果哈希值是www.website.com/#news-item-03它将用户水平滑动到第三个新闻故事,这很好用!我只希望这个函数触发,虽然如果哈希news-item显然包含每个之后的数字会改变,但是如果哈希以news-item然后我希望上面的函数被触发,我什至不确定这是否有可能,任何建议将不胜感激!

4

2 回答 2

8

不需要jQuery,这应该很好用

 if (window.location.hash) {
     if (window.location.hash.indexOf('news-item') == 1) { // not 0 because # is first character of window.location.hash
         // it's at the start
     }
     else if (window.location.hash.indexOf('news-item') != -1) {
         // it's there, but not at the start
     }
     else {
         // not there
     }
 }
于 2013-11-10T11:14:37.410 回答
3

使用正则表达式:

var matches = hash.match(/^#news-item-([0-9]+)$/);
if (matches) {
    var number = matches[1];
    // Rest of your code
}
于 2013-11-10T11:16:24.603 回答