Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 加载Ajax后按钮上的JQuery HTML onclick属性不起作用_Javascript_Php_Jquery_Ajax_Twitter Bootstrap - Fatal编程技术网

Javascript 加载Ajax后按钮上的JQuery HTML onclick属性不起作用

Javascript 加载Ajax后按钮上的JQuery HTML onclick属性不起作用,javascript,php,jquery,ajax,twitter-bootstrap,Javascript,Php,Jquery,Ajax,Twitter Bootstrap,下面的按钮是通过Ajax从PHP代码加载的。该按钮具有名为viewImage的函数的onclick属性。Ajax请求在函数loadImages中每5秒发出一次 get.php页面中的按钮(不是完整的代码,因为我认为这是一个JQuery问题,所以不需要它): 问题是,有时在Ajax加载之后,我几乎无法单击按钮重定向到函数。我需要点击几次才能正常工作,因为按钮一直在闪烁,正如你在这里看到的 这只会在几次(2到4次)ajax加载之后发生 我删除了按钮的CSS样式,它停止了闪烁/闪烁,但我仍然需要点击

下面的按钮是通过Ajax从PHP代码加载的。该按钮具有名为viewImage的函数的onclick属性。Ajax请求在函数loadImages中每5秒发出一次

get.php页面中的按钮(不是完整的代码,因为我认为这是一个JQuery问题,所以不需要它):

问题是,有时在Ajax加载之后,我几乎无法单击按钮重定向到函数。我需要点击几次才能正常工作,因为按钮一直在闪烁,正如你在这里看到的

这只会在几次(2到4次)ajax加载之后发生

我删除了按钮的CSS样式,它停止了闪烁/闪烁,但我仍然需要点击几次才能正常工作

所有文件、函数和变量(例如$imageID)都被正确引用。除了上面提到的这个问题,一切都正常


有人能帮我吗?

loadImage
函数中不需要额外的超时,因为它只在服务器响应AJAX调用后调用,所以
loadImage
调用应该是同步的。添加超时将有效地使此调用异步,并且在多次单击之后,异步AJAX调用将开始与异步映像加载调用发生冲突-这是您观察到的没有必要在
loadImage
函数中有额外的超时,因为它只在服务器响应AJAX调用后调用,所以
loadImage
调用应该是同步的。添加超时将有效地使此调用异步,并且在多次单击之后,异步AJAX调用将开始与异步映像加载调用冲突-这就是您所观察到的

这可能是堆栈超时的问题。考虑每次调用<代码> LoaDimaGeS()/Cuth>时,您正在启动一个调用负载的逻辑递归循环,然后在5秒钟后再次调用该方法。因此,第一次调用该方法时,您有一个逻辑循环。然后,单击上的图像调用viewImage,成功调用loadImage。所以每次你点击一个图片,你就开始了一个逻辑循环,这个循环永远不会终止。我想这就是问题所在,我没有注意到。将
setTimeout
loadImages()中取出解决了我的问题。这可能是堆叠超时的问题。考虑每次调用<代码> LoaDimaGeS()/Cuth>时,您正在启动一个调用负载的逻辑递归循环,然后在5秒钟后再次调用该方法。因此,第一次调用该方法时,您有一个逻辑循环。然后,单击上的图像调用viewImage,成功调用loadImage。所以每次你点击一个图片,你就开始了一个逻辑循环,这个循环永远不会终止。我想这就是问题所在,我没有注意到。将
setTimeout
loadImages()中取出解决了我的问题。
<button onclick="viewImage(<?php echo $imageID; ?>)" id="watch" class="btn btn-outline-warning">VIEW</button>
function viewImage(imageID) {
  $.ajax({
    type: "POST",
    url: "./php/images/view.php",
    data: {imageID: imageID},
    success: function() {
        loadImage();
    }
  });
}

function loadImage() {
   $('#images').load('./php/images/get.php', function(){
     setTimeout(loadImage, 5000);
   });
};