2016-12-15 112 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

这太糟糕了,祝你好运! –