ajax嵌套陷阱

$('.ajaxupd').click(function () {
$('.shadow1').show();
$('.update').show(); var tds=$(this).parent().prevAll();
var cids=$(tds[0]).attr('classid');
var tname=$(tds[1]).text();
var tid=$(tds[2]).text();
var l='';
console.log(cids,666);
for(i of cids){
if(i!='['&&i!=']'&&i!=' '){
l=l+i
}
}
l_s=l.split(',');
var c_s=[];
for(i of l_s){
c_s.push(i)
}
console.log(c_s,88);
$('#cid').val(c_s);
$('#tid').val(tid);
$('#tname').val(tname);
}); $('#ajaxcancel').click(function () {
$('.shadow1, .update').hide();
}); $('#ajaxtijiao').click(function () { $.ajax({
type:'POST',
url:'/appteacher/ajax_up_teacher/',
traditional:true,
data:{'tname':$('#tname').val(),'tid':$('#tid').val(),'cid':$('#cid').val()}, success:function (data) {
console.log(11121212121);
console.log(data);
if(data['code']==10000){
alert('更改成功');
window.location.href='/appteacher/teacher/';
}else {
alert('更改失败');
}
}
})
})

这里一共有三个点击事件:

$('.ajaxupd').click—-----—1

$('#ajaxcancel').click-------2

$('#ajaxtijiao').click———3

一号事件发生后二号和三号事件才能触发,但是之前为了方便传值,我直接把二号和三号事件写在了一号事件里面.

问题来了!

如此,若是点击一号后点击三号取消,二号会持续处于监听状态,(多次如此操作会有多个提交监听事件).

待到之后若是点击二号这些事件会同时触发,造成修改错乱,甚至会导致多个数据库同时操作相同数据而出错.

总结:ajax事件尽量不要使用嵌套!

感谢小何同学的指导.

ajax嵌套陷阱的更多相关文章

  1. Spring MVC Ajax 嵌套表单数据的提交

    概述 在一些场景里,某个大表单里常常嵌套着一个或若干个小逻辑块,比如以下表单里"设计预审"中包括了一个子模块表单"拟定款项". 在这种情况下该怎么去设计实体类以 ...

  2. ajax嵌套ajax 可能出现问题 的解决办法

    ajax由于他的异步特性 在第一次请求中的循环中嵌套第二个ajax会数据会读不出来 第一种 描述:如果条件许可,把两次请求都放在服务端处理掉一起发回来,这些就在客户端只有一次ajax了 优点:代码放在 ...

  3. Ajax嵌套Ajax的模版

    引入 在开发中,难免会碰到需要发送两次ajax请求或者更多的情况 情境:我们需要resultB数据,后台提供的接口要先传入参数paramA,获取到resultA,然后resultA作为参数,调用另外一 ...

  4. Ajax嵌套调用 (jquery) $.ajaxSettings.async = false;

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  5. Ajax请求内嵌套Ajax请求的方法

    前段时间做项目,需要把全国省市的两个XML文件整合成一个JSON格式的数据,手写的话觉得数据太多了,而且容易出错,于是就想到了用Ajax嵌套的方法来解决,就想平时用Ajax的方法直接嵌套,都会先读出外 ...

  6. jquery 中多个存在依赖关系的ajax调用解决办法

    在使用ajax异步调用的时候,可能碰到同时调用多个ajax这种情况.而且多个ajax之间还存在依赖关系.这种情况怎么处理呢?   有两种办法: 一种是多个ajax嵌套调用,这时需要设置async为fa ...

  7. 使用JQuery Deferred对象的then() 解决多个AJAX操作顺序依赖的问题

    原文地址:http://www.2cto.com/kf/201507/424202.html 之前的文章javascript异步代码的回调地狱中提到了编写AJAX代码经常遇到的3个问题,现在我们看下如 ...

  8. JavaScript异步编程(2)- 先驱者:jsDeferred

    JavaScript当前有众多实现异步编程的方式,最为耀眼的就是ECMAScript 6规范中的Promise对象,它来自于CommonJS小组的努力:Promise/A+规范. 研究javascri ...

  9. MVVM架构~Knockoutjs系列之js接收C#数据集合的方式

    返回目录 在controller里将数据拿到,并且存储到ViewBag对象里,最后在View上显示出来,这是传统的MVC开发方式,事实上引入Knockoutjs以后,这种方式还是适合的,Knockou ...

随机推荐

  1. IOS开发之基础oc语法

    类 1.类的定义: 类=属性+方法: -属性代表类的特征 -方法是类能对变化做出的反应 类定义的格式:类的声明和类的实现组成 -接口(类的声明):@interface 类名:基类的名字 .类名首字母要 ...

  2. 英语-汉语600句-会见:Making an Appointment/约会

    ylbtech-英语-汉语600句-会见:Making an Appointment/约会 1.返回顶部 1. Making an Appointment/约会1.喂,请问是哪位?Hello, who ...

  3. 从web.xml入手分析jeecms配置文件

      web.xml文件是web系统的核心配置文件,里面的所有配置都会加载的运行时的web容器,从她可以了解到整个web项目的配置情况.jeecms的所有配置文件都在config文件夹下面,通过web. ...

  4. MYSQL中使用事务的案例

    基本介绍 事务用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml语句要么全部成功,要么全部失败.如:网上转账就是典型的要用事务来处理,用以保证数据的一致性. 关键词 start tran ...

  5. PAT甲级——A1053 Path of Equal Weight

    Given a non-empty tree with root R, and with weight W​i​​ assigned to each tree node T​i​​. The weig ...

  6. CentOS 6.5 usb安装

    我只说一下将CentOS安装作为服务器的情况,但是适用于普遍的CentOS安装过程,首先下载CentOS的安装镜像文件,有这么几种:CentOS-6.5-x86_64-LiveCD.CentOS-6. ...

  7. qml获取实际渲染的字体

    当设置qml的Text元素的字体时,如果系统中不存在设置的字体,qml会根据匹配算法自动选取系统中存在的一种字体.比如:设置font.family: "微软雅黑",但系统中根本没有 ...

  8. kuangbin带我飞QAQ 线段树

    1. HDU1166 裸线段树点修改 #include <iostream> #include <string.h> #include <cstdio> #incl ...

  9. Luogu P3295 [SCOI2016]萌萌哒(并查集+倍增)

    P3295 [SCOI2016]萌萌哒 题面 题目描述 一个长度为 \(n\) 的大数,用 \(S_1S_2S_3 \cdots S_n\) 表示,其中 \(S_i\) 表示数的第 \(i\) 位, ...

  10. Django项目:CRM(客户关系管理系统)--38--30PerfectCRM实现King_admin编辑自定义字段验证

    # kingadmin.py # ————————04PerfectCRM实现King_admin注册功能———————— from crm import models #print("ki ...