這段代碼爲什麼不能關閉setInterval?我點擊一個元素來啓動它,並且它開始正常(以5秒爲間隔淡入淡出div#內容)。我點擊一個元素來停止它,並且它只是繼續在星期=當前淡入和淡出,即使它最初加載了正確的一週。setInterval:爲什麼不重置?
無論我是否將函數與jQuery封裝分開,都沒有關係。任何幫助讚賞。
$out .= '<script type="text/javascript">'."\n";
$out .= '$(document).ready(function() {'."\n";
$out .= ' $("span.archives").click(function() {'."\n";
$out .= ' $("#content").load("update.php?week=" + this.id);'."\n";
$out .= ' if (this.id == \'current\') {'."\n";
$out .= ' StartStop(\'on\');'."\n";
$out .= ' } else {'."\n";
$out .= ' StartStop(\'off\');'."\n";
$out .= ' }'."\n";
$out .= ' });'."\n";
$out .= ' function StartStop(txt) {'."\n";
$out .= ' if (txt == \'on\') {'."\n";
$out .= ' var refresh = setInterval(function() {'."\n";
$out .= ' $("#content").fadeOut("slow", function() {'."\n";
$out .= ' $("#content").load("update.php?week=current", function() {'."\n";
$out .= ' $("#content").delay(250).fadeIn("slow");'."\n";
$out .= ' });'."\n";
$out .= ' });'."\n";
$out .= ' }, 5000);'."\n";
$out .= ' } else {'."\n";
$out .= ' clearInterval(refresh);'."\n";
$out .= ' }'."\n";
$out .= ' }'."\n";
$out .= '});'."\n";
$out .= '</script>'."\n";
有你爲什麼存儲JavaScript的任何原因代碼作爲PHP中的字符串?調試(和維護)非常困難。 – 2011-03-29 07:59:35
即使您將它存儲在代碼中,PHP字符串文字也可以跨越多行:http://www.php.net/manual/en/language.types.string.php – Kobi 2011-03-29 09:21:23
是的,我沒有真正做過任何優化然而。這是一個WordPress插件,但。 – daveycroqet 2011-03-30 11:09:50