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事件尽量不要使用嵌套!

感谢小何同学的指导.

最新文章

  1. iOS中常用的宏定义
  2. django static文件的引入方式
  3. <select> 默认选中
  4. vuejsLearn---通过手脚架快速搭建一个vuejs项目
  5. CentOS 6.5 搭建 LAMP 环境
  6. __getattr__ 与动态属性
  7. MySQL通过Binlog恢复删除的表
  8. motan解读:添加spring 支持
  9. UNIX标准化及实现之POSIX标准扩展头文件
  10. LINUX命令行操作
  11. TOJ1693(Silver Cow Party)
  12. PHP中magic_quotes_gpc和 magic_quotes_runtime区别及其反斜线转义问题
  13. ThinkPHP 3.2 开发过程
  14. 对于c语言存储分配程序(malloc函数)实现的理解
  15. Git版本回退和撤销修改的区别
  16. eclipse快速配置spring相关xml文件头信息
  17. 微信小程序选择视频,视频上传,视频播放
  18. javascript void函数
  19. SQL-37 创建索引
  20. Xposed Hook & Anti-hook

热门文章

  1. phpqrcode.php 生成二维码图片用于推广
  2. Shell 语法之信号与作业
  3. PAT甲级——A1063 Set Similarity
  4. poj 2349 Arctic Network 最小生成树,求第k大条边
  5. 8天入门wpf—— 第四天 模板
  6. JDBC 操作数据库实例
  7. 【JZOJ5233】【GDOI模拟8.5】概率博弈 树形dp+期望
  8. GIT → 02:Git和Svn比较
  9. Linux ifconfig 配置网络接口
  10. linux系统服务