У меня есть следующее. Я пытаюсь вызвать функцию, основанную на изменении класса CSS, но она не работает.
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery("#slider-banner").bind("cssClassChanged",function(){
console.log("I'm Here!");
if(jQuery("#slider-banner").hasClass('living-nutrients'))
{
jQuery("#home-middle-first").css("background-image","url([image path])");
}
else if(jQuery("#slider-banner").hasClass('right-partner'))
{
jQuery("#home-middle-second").css("background-image","url([image path])");
}
else if(jQuery("#slider-banner").hasClass('with-you'))
{
jQuery("#home-middle-third").css("background-image","url([image path])");
}
});
jQuery("#slider-banner").trigger('cssClassChanged');
Colsole отображает мое сообщение console.log при загрузке страницы, но не при повторном изменении класса после загрузки страницы. Кто-нибудь видит, что я делаю не так?
UPDATE:
Итак, я узнал, что «cssClassChanged» не является законным ... Я пытался адаптировать ответ, который нашел где-то еще ... Я понимаю, что если бы jQuery был оружием, я был бы опасен! (зная, что это полдела, верно?)
Моя попытка приспособить ответ Гдорона , связанный с ниже:
<script type="text/javascript">
jQuery(document).ready(function()
{
function checkForChanges()
{
if(jQuery("#slider-banner").hasClass('living-nutrients'))
{
jQuery("#home-middle-first").css("background-image","url([image path])");
}
else if(jQuery("#slider-banner").hasClass('right-partner'))
{
jQuery("#home-middle-second").css("background-image","url([image path])");
}
else if(jQuery("#slider-banner").hasClass('with-you'))
{
jQuery("#home-middle-third").css("background-image","url([image path])");
}
else
setTimeout(checkForChanges, 500);
}
});
</script>
Я все еще что-то упускаю, хотя. Работает только для первого класса при загрузке страницы.
Кто-то спросил, как я меняю классы. Я использую слайдер, и на каждом слайде есть div с идентификатором «слайдер-баннер», и класс меняется в зависимости от того, для какой из трех идентифицированных областей под ним я пытаюсь переключить фоновое изображение.