1 回答

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊
看起來(lái)您需要if ($('#rotators').data('clicked')) {在setInterval函數(shù)內(nèi)部移動(dòng)塊。這樣做的原因是 if/else 在頁(yè)面加載時(shí)被評(píng)估,因此它會(huì)立即被評(píng)估,$('#rotators').data('clicked') === undefined并因此setInterval永久觸發(fā)該函數(shù)。
如果您在setInterval函數(shù)內(nèi)移動(dòng) if/else 子句,它將每 500 毫秒檢查一次該元素是否已被單擊。
下面的代碼似乎實(shí)現(xiàn)了你想要的:
$(document).ready(function() {
$("#rotators").click(function() {
$(this).data('clicked', true);
});
setInterval(function() {
if ($('#rotators').data('clicked'))
{
$("#rotators").css({
"overflow": "auto"
});
$("#rotators").css({
"height": "auto"
});
}
else if ($("#rotatelist > a:last").is(":visible"))
{
$("#rotatelist a:last").after($("#rotatelist a:first"));
$("#rotators").css({
"overflow": "hidden"
});
$("#rotators").css({
"height": "30px"
});
}
}, 500);
});
正如羅里在評(píng)論中所說(shuō)
事實(shí)上,如果你在問(wèn)題中描述你的目標(biāo)可能會(huì)更容易,因?yàn)槲掖_信有更好的方法來(lái)實(shí)現(xiàn)它
您的問(wèn)題可能是XY 問(wèn)題的一個(gè)示例- 可能值得解釋您嘗試使用上述代碼實(shí)現(xiàn)的目標(biāo)。無(wú)論哪種方式,我希望我的回答對(duì)您的理解有所幫助。
編輯:在看到您想要的目標(biāo)后,這是您正在尋找的事情嗎:使列表垂直?https://jsfiddle.net/0kn72ofp/
目前您的鏈接列表不會(huì)一次旋轉(zhuǎn)一個(gè),它似乎一次移動(dòng)幾個(gè)字符。如果您希望它一次旋轉(zhuǎn)一個(gè)鏈接,我建議您查看 jQuery UI 的 Slide 或 slideToggle 效果之類的東西。
添加回答
舉報(bào)