2015-07-24 3 views
0

ПроблемаBootstrap Carousel Goto Slide От External Link

Я пытаюсь вызвать идти скользить в Bootstrap карусель с использованием хэш во внешней ссылке, но моя функция ничего не делает.

То, что я пытался

функция My goToSlide отлично работает внутри страницы, и я могу пойти в каждый слайд с этой функцией. Я думал, что это связано с тем, что карусель не инициализируется, поэтому я попробовал несколько перестановок jQuery document.ready и jQuery.when, чтобы убедиться, что моя карусель уже инициализирована.

Я также пробовал jQuery.when с идентификатором карусели вместо класса. Я также попытался использовать старое окно window.onload, чтобы убедиться, что страница была загружена. Я исключил, что значение «должно быть целым числом» для индекса карусели, так как я обнаруживаю хеш текста и запускаю функцию с целым числом. Обнаружение хеширования работает, если вы прочитаете раздел «Что это за код».

Мой URL

http://www.website.com/#business

Мой код

jQuery(document).ready(function() { 
    jQuery.when(jQuery('.carousel').carousel({ interval: false })).done(function() { 
     if(window.location.hash) { 
       var home_section = window.location.hash.substring(1); 
      console.log(home_section); 
      if (home_section == "auto") { goToSlide(0); console.log("went to auto"); } 
      if (home_section == "home") { goToSlide(1); console.log("went to home"); } 
      if (home_section == "business") { goToSlide(2); console.log("went to business");} 
      } 
    }); 
}); 
function goToSlide(number) { 
    jQuery("#carousel-homebanner").carousel(number); 
} 

Что делает этот код

Мой хэш констатировано, потому что я могу видеть мою console.lo g выводит текст выше, но в том же блоке кода, который должна срабатывать функция goToSlide. Я не получаю никаких ошибок, поэтому я предполагаю, что он срабатывает.

Вопрос

Как сделать внешнюю ссылку с хэш сделать мой карусельный слайд правильно слайд?

EDIT Мой Другой код, который также не работает

window.onload = function() { 
jQuery.when(jQuery('#carousel-homebanner').carousel({ interval: false })).done(function() { 
     if(window.location.hash) { 
       var home_section = window.location.hash.substring(1); 
      console.log(home_section); 
      if (home_section == "auto") { goToSlide(0); console.log("went to auto"); } 
      if (home_section == "home") { goToSlide(1); console.log("went to home"); } 
      if (home_section == "business") { goToSlide(2); console.log("went to business");} 
      } 
    }); 

} 
+0

Я вижу, что у вас есть выбор для вашей карусели (.carousel и # carousel-homebanner), потому что у вас есть 2 слайдера (в этом случае вы стреляете в карусель2, когда carousel1 является init) или это просто ошибка, наследуемая от копировать вставить? – DFayet

+0

В этом случае на странице есть 2 карусели. Я инициировал их по классу. Carousel, и я также попробовал инициировать их отдельно с их соответствующими идентификаторами. Моя цель - обнаружить карусель init, а затем проверить хэш и запустить функцию слайда goto. Я только хочу запустить 1 из каруселей с хэш-ссылкой, а не с другой. –

+0

Я только что отредактировал вопрос с моим другим кодом. –

ответ

0

Решение здесь было то, что мои примеры кода, по сути дела, работа. Я основывал неудачный результат на состоянии навигационных ссылок, которые не были подсвечены.

Триггер на самом деле происходит, и ошибок не было, поэтому каждый из примеров полностью функционирует.

Dfayet для второй пары глаз.