首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery ajaxComplete自行车

jQuery ajaxComplete自行车
EN

Stack Overflow用户
提问于 2020-01-18 17:56:01
回答 1查看 19关注 0票数 0

我有一个代码:

代码语言:javascript
复制
$(document).ajaxComplete(function() {
  DoSomething();
});

function DoSomething() {
 ...
 $.get(MyUrl, function() {
   ...
 });
 ...
}

但$.get循环ajaxComplete事件:(

存在某种方式,如何从我的网址获得超文本标记语言内容到变量来使用这个变量(查找类和内容),或者以某种方式,如何使用$.get禁用进程的ajaxComplete事件?

EN

回答 1

Stack Overflow用户

发布于 2020-01-18 18:02:03

您可以在ajaxComplete中检查请求的URL。如果是您在DoSomething中请求的URL,请不要再次调用DoSomething

代码语言:javascript
复制
$(document).ajaxComplete(function(_, __, { url }) {
  if (url === 'https://jsonplaceholder.typicode.com/posts/1') {
    console.log("Recursion detected, don't do anything");
  } else {
    console.log('Calling DoSomething');
    DoSomething();
  }
});

function DoSomething() {
 $.get('https://jsonplaceholder.typicode.com/posts/1', function() {
   console.log('DoSomething done');
 });
}

$.get('https://jsonplaceholder.typicode.com/posts/5');
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

还可以在传递给$.get的options对象上设置属性,并检查.ajaxComplete中是否存在该属性

代码语言:javascript
复制
$(document).ajaxComplete(function(_, __, { fromDoSomething }) {
  if (fromDoSomething) {
    console.log("Recursion detected, don't do anything");
  } else {
    console.log('Calling DoSomething');
    DoSomething();
  }
});

function DoSomething() {
 $.get({
   url: 'https://jsonplaceholder.typicode.com/posts/1',
   fromDoSomething: true
 }, function() {
   console.log('DoSomething done');
 });
}

$.get('https://jsonplaceholder.typicode.com/posts/5');
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59799373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档