我正在尝试这样做,因此当单击导航项时,它会收回右侧的新闻自动收报机,然后不再运行任何提取/计时器功能。我让它缩回,但它仍然提取。
我是如何做到的,我正在添加一个带有导航按钮的“noTicker”类,并使用颜色框的关闭按钮将其删除。该函数最初在页面上运行,如果没有“noTicker”类,它会按计划运行新闻代码。单击导航或关闭按钮时,它会再次运行该函数,再次检查它是否具有该类。
因此,如果它有类,它应该收回(它必须意味着它正确地添加了类)然后不运行任何计时器功能,但由于某种原因它仍然运行计时器功能。这是我的 jQuery。根据萤火虫的说法,当单击关闭按钮时,它也没有正确删除类。
/* 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 */
});
}
}
/* 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();
});
谢谢,
韦德