Мой сайт находится здесь: http://treethink.comJquery removeClass Не рабочая
То, что я собираюсь это новостной информер на праве, который находится внутри функции JQuery. Функция запускается сразу и извлекает тикер новостей, а затем втягивает его, как следует. При навигации он добавляет класс в div, который функция затем проверяет, не стоит ли прекращать извлечение/втягивание. Все это прекрасно работает.
Проблема, с которой я столкнулась, заключается в том, что после нажатия кнопки закрытия (в окне содержимого) removeClass не будет работать. Это означает, что он продолжает думать, что окно открыто, и поэтому условное выражение внутри функции не позволит ему извлечь и снова втянуть. С простой проверкой firebug он показывает, что класс не удаляется.
Это не идентификатор cboxClose, который он не находит, потому что я попытался изменить его на теги «вообще», и он все равно не будет работать, так что это точно связано с jQuery. Кто-то также предложил быстрое оповещение(), чтобы проверить, работает ли обратный вызов, но я не уверен, что это такое.
Вот код:
/* News Ticker */
/* Initially hide all news items */
$('#ticker1').hide();
$('#ticker2').hide();
$('#ticker3').hide();
var randomNum = Math.floor(Math.random()*3); /* Pick random number */
newsTicker();
function newsTicker() {
if (!$("#ticker").hasClass("noTicker")) {
$("#ticker").oneTime(2000,function(i) { /* Do the first pull out once */
$('div#ticker div:eq(' + randomNum + ')').show(); /* Select div with random number */
$("#ticker").animate({right: "0"}, {duration: 800 }); /* Pull out ticker with random div */
});
$("#ticker").oneTime(15000,function(i) { /* Do the first retract once */
$("#ticker").animate({right: "-450"}, {duration: 800}); /* Retract ticker */
$("#ticker").oneTime(1000,function(i) { /* Afterwards */
$('div#ticker div:eq(' + (randomNum) + ')').hide(); /* Hide that div */
});
});
$("#ticker").everyTime(16500,function(i) { /* Everytime timer gets to certain point */
/* Show next div */
randomNum = (randomNum+1)%3;
$('div#ticker div:eq(' + (randomNum) + ')').show();
$("#ticker").animate({right: "0"}, {duration: 800}); /* Pull out right away */
$("#ticker").oneTime(15000,function(i) { /* Afterwards */
$("#ticker").animate({right: "-450"}, {duration: 800});/* Retract ticker */
});
$("#ticker").oneTime(16000,function(i) { /* Afterwards */
/* Hide all divs */
$('#ticker1').hide();
$('#ticker2').hide();
$('#ticker3').hide();
});
});
} else {
$("#ticker").animate({right: "-450"}, {duration: 800}); /* Retract ticker */
$("#ticker").oneTime(1000,function(i) { /* Afterwards */
$('div#ticker div:eq(' + (randomNum) + ')').hide(); /* Hide that div */
});
$("#ticker").stopTime();
}
}
/* when nav item is clicked re-run news ticker function but give it new class to prevent activity */
$("#nav li").click(function() {
$("#ticker").addClass("noTicker");
newsTicker();
});
/* when close button is clicked re-run news ticker function but take away new class so activity can start again */
$("#cboxClose").click(function() {
$("#ticker").removeClass("noTicker");
newsTicker();
});
Спасибо,
Wade
Я обновил сайт, но независимо от него, безусловно, не работает. Я попробую обновить jQuery, но я не уверен, что это сломает его, есть некоторые вещи, которые могут зависеть от конкретных версий. –
Хорошо, что обновление работало нормально, однако проблема не устранена. –
Кажется, что независимо от того, какую ссылку я прикреплю, removeClass к нему не будет работать, я попробовал добавить туда addClass, и он не сработает. Это означает, что проблема не в ссылке, а не в removeClass ... Это что-то еще. –