zoukankan      html  css  js  c++  java
  • ajax嵌套陷阱

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

    感谢小何同学的指导.

  • 相关阅读:
    c# 基础算法(一) 九九乘法
    万能模糊查询SQL
    C#通过连接ODBC的方式调用存储过程
    《从设计到模式》学习笔记part1
    C#知识归纳
    Python之路
    Tomcat优化
    Zabbix 3.0 + Nginx + Mariadb
    Spark DataFrame ETL教程
    Python连接presto
  • 原文地址:https://www.cnblogs.com/luowenConnor/p/11219287.html
Copyright © 2011-2022 走看看