jQuery: проверьте, содержит ли хеш

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 он будет скользить по горизонтали горизонтально до 3-й новости, это отлично работает !. Я хочу, чтобы эта функция срабатывала, хотя если хэш содержит news-item очевидно, число после каждого будет меняться, но если хэш начинается с news-item тогда я хочу, чтобы функция выше была запущена, я даже не уверен, что это это вообще возможно, любые предложения были бы высоко оценены!

Теги:
hash

2 ответа

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 at the start
     }
     else if (window.location.hash.indexOf('news-item') != -1) {
         // it there, but not at the start
     }
     else {
         // not there
     }
 }
  • 2
    это будет window.location.hash.indexOf('news-item') == 1 , # будет в индексе 0
  • 0
    да понял так же, как я написал это, это исправлено :)
Показать ещё 1 комментарий
3

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

var matches = hash.match(/^#news-item-([0-9]+)$/);
if (matches) {
    var number = matches[1];
    // Rest of your code
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню