繁体   English   中英

on.blur和on.click在ajax之前触发?

[英]on.blur and on.click triggered prior to ajax?

我有两个事件,第二个触发Ajax调用。 (单击会在<td>创建一个输入,之后会被成功事件覆盖 - 因此模糊的输入是正确的)

$(document).on("click","#"+table_id+" td",function(e)

$(document).on("blur","#"+table_id+" td input",function(e)
  ajax(ajaxStatements,"update");

如果我点击<td>然后点击一个空白区域,它会如下所示:

点击事件-----------
BLUR EVENT #######
AJAX EVENT +++++++

如果我点击<td>然后再次点击另一个<td>它就表现不正常。

点击事件-----------
BLUR EVENT #######
AJAX EVENT +++++++
点击事件-----------

这就是我要的。 接下来 - 这就是问题 - 响应变化并且这样做:

点击事件-----------
BLUR EVENT #######
点击事件-----------
AJAX EVENT +++++++

为什么即使调用blur事件,新的click-event也会在ajax调用之前触发?

因为AJAX是异步的,所以您的请求和click事件会同时触发。

尝试这个:

$.ajax({
 async:false,
})

这是因为您的异步中的ajax()请求并不等待ajax()完成。 因此,如果你想保持这个过程直到ajax没有完成,试试这个:

$.ajax({
   async:false,
});

Ajax Doc

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM