2016-12-15 109 views
1

我的頁面正在讀取實時流並將其顯示在屏幕上。這是通過PHP使用SSH連接到框然後運行特定命令完成的。然後將結果顯示在屏幕上,並將屏幕滾動到底部,以便始終看到最新的輸出。這工作正常。頁面正在更新時Jquery'click'無法正常工作

我現在已經創建了一個按鈕來停止這個過程。該按鈕位於頁面上的固定位置。點擊後,它使用ajax來調用一個外部頁面,這會殺死我正在運行的進程。

的代碼是:

<input type='button' style='position: fixed; height: 15px; top: 20px; left: 20px; width: 115px;' id='stop' name='stop' value='stop' /> 

$('body').on('click','#stop' , function(){ 
    console.log ('clicked'); 
    $.ajax({ url : 'stop.php?id=123', 
}); 

點擊按鈕後未更新的頁面正常工作。我在控制檯中看到'點擊'和'殺死'的結果。

但是,當頁面正在更新時,單擊該按鈕不會執行任何操作。我的控制檯沒有顯示任何內容。

ob_flush(); flush(); 
echo (htmlentities($out); 
ob_flush(); flush(); 
echo "<script>$('html, body').animate({scrollTop:$(document).height()}, 400);</script>"; 

無論如何,我可以得到該按鈕的工作,而該頁面被更新:

流結果顯示使用? 感謝

+1

能告訴你的'$阿賈克斯()的代碼'?此外,還要避免使用'$( '身體' )'而不是使用'$(document)' – Satpal

+0

來自流的請求是否同步?這將停止正在檢索數據時正在處理的點擊 –

+0

@GhanshyamBaravaliya,從jQuery 1.7開始,'.live()'方法已被棄用,而不贊成使用'.on()'參見http://api.jquery.com/live/ – Satpal

回答

0

而不是使用:

$('body').on('click','#stop', function() { }); 

試試這個:

$(document).on('click','#stop', function() { }); 
+0

改變,沒有幫助。它仍然是這樣。 – Tom

+0

這太糟糕了,祝你好運! –