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

    感谢小何同学的指导.

  • 相关阅读:
    TongJI Online Judge预赛(3): Game
    堆栈小应用:配对
    在.net中使用Udp协议创建简单的聊天程序
    TongJI Online Judge预赛(2): LOVE LETTER
    全排列问题之递归求解
    如何打造RSS阅读器
    Html 常用标志总结
    实现页面的分帧显示
    每天OnlineJudge之 “数素数”
    文本编辑器中,如何设计 撤销/重复栈
  • 原文地址:https://www.cnblogs.com/luowenConnor/p/11219287.html
Copyright © 2011-2022 走看看