2013-11-10 4 views
0

Я ищу, чтобы попробовать и проверить, если хэш в URL содержит определенное значение, прежде чем продолжить, у меня есть функция, которая работает следующим образом:
JQuery: Проверьте, если хэш содержит

$(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); 
}); 

Итак, если hash is www.website.com/#news-item-03 он будет скользить пользователя горизонтально к 3-й новостной ленте, это отлично работает !. Я хочу, чтобы эта функция срабатывала, хотя если хэш содержит news-item, очевидно, число после каждого будет меняться, но если хэш начинается с news-item, тогда я хочу, чтобы функция выше была уволена, я даже не уверен, что это вообще возможно , Любые предложения будут ценны!

ответ

6

Нет необходимости для 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 
    } 
} 
+2

это будет 'window.location.hash.indexOf ('Новости-пункт') = = 1', # будет на индексе 0 – Hiral

+0

да реализовано так же, как я его разместил, он исправлен :) – Niall

+0

отлично сейчас .... – Hiral

3

Используйте регулярное выражение:

var matches = hash.match(/^#news-item-([0-9]+)$/); 
if (matches) { 
    var number = matches[1]; 
    // Rest of your code 
} 
Смежные вопросы