Проблема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");}
}
});
}
Я вижу, что у вас есть выбор для вашей карусели (.carousel и # carousel-homebanner), потому что у вас есть 2 слайдера (в этом случае вы стреляете в карусель2, когда carousel1 является init) или это просто ошибка, наследуемая от копировать вставить? – DFayet
В этом случае на странице есть 2 карусели. Я инициировал их по классу. Carousel, и я также попробовал инициировать их отдельно с их соответствующими идентификаторами. Моя цель - обнаружить карусель init, а затем проверить хэш и запустить функцию слайда goto. Я только хочу запустить 1 из каруселей с хэш-ссылкой, а не с другой. –
Я только что отредактировал вопрос с моим другим кодом. –