在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  PHP  Python  C  HTML/ $(this),點擊事件里有點擊事件,觸發(fā)多次ajax,如下圖和代碼

$(this),點擊事件里有點擊事件,觸發(fā)多次ajax,如下圖和代碼

問題

第一步,點擊...,顯示紅色的罩層

clipboard.png

第二步,點擊啟動答題

clipboard.png

點擊了啟動答題,就產(chǎn)生問題了

第一次點擊的時候,只發(fā)一次ajax,第二次點擊,就會觸發(fā)2次,一直疊加

要循環(huán)的html

        <div class="item-box">
            <div class="box-hava-data">
                <div class="item-white">
                    <div class="white-left">
                        <div class="left-top">
                            <span class="top-title">{{=it.paperName}}</span>
                            <input type="number" hidden="" class="this-paperId" value="{{=it.paperId}}" />
                            <span class="top-tag">{{=it.paperTypeName}}</span>
                        </div>
                        <div class="left-middle">
                            <span class="middle-time">{{=it.createTime}}</span>
                            <span class="middle-state">狀態(tài):
                                            {{? it.status==="not_start"}}
                                            未答題
                                            {{?? it.status==="started"}}
                                            答題中
                                            {{??}}
                                            結(jié)束答題
                                            {{?}}
                                            {{=it.questionCount}}題
                                            </span>
                        </div>
                        <div class="left-bottom">
                            <span class="bottom-class">
                                    {{? it.paperTypeId===6}}
                                                {{=it.className}} - {{=it.studentName}}
                                    {{??}}
                                                {{=it.className}}
                                    {{?}}

                            </span>
                            <span class="bottom-submit"> 已提交0/1</span>
                            <span class="bottom-noCorrect">未批改</span>
                        </div>
                        <input type="number" hidden="" name="testId" class="testId" value="{{=it.id}}" />
                    </div>
                    <div class="white-right">
                        <div class="circle">
                            <div class="pie_left">
                                <div class="left"></div>
                            </div>
                            <div class="pie_right">
                                <div class="right"></div>
                            </div>
                            <div class="theValue">
                                <p>正確率</p>
                                <p><span class="vauNum">{{=it.accuracy}}</span>%</p>
                            </div>
                        </div>

                        <div class="right-bottom">
                            //3個點點點
                            <span class="bottom-item"></span>
                            <span class="bottom-item"></span>
                            <span class="bottom-item"></span>
                        </div>
                    </div>
                </div>
                <div class="item-red">
                    {{? it.status==="not_start"}}
                    <div class="red-group">
                        <img class="group-img-start" src="../../image/index_start.png" alt="img" />
                        <p class="group-text">啟動答題</p>
                    </div>
                    <div class="red-group">
                        <img class="group-img-del" src="../../image/index_del.png" alt="img" />
                        <p class="group-text">取消答題</p>
                    </div>
                    {{?? it.status==="started"}}
                    <div class="red-group">
                        <img class="group-img-stop" src="../../image/index_stop.png" alt="img" />
                        <p class="group-text">結(jié)束答題</p>
                    </div>
                    <div class="red-group">
                        <img class="group-img-scan" src="../../image/index_scan.png" alt="img" />
                        <p class="group-text">開始掃描</p>
                    </div>
                    <div class="red-group">
                        <img class="group-img-edit" src="../../image/index_edit.png" alt="img" />
                        <p class="group-text">開始批改</p>
                    </div>
                    {{??}} {{? it.correctStatus==="not_start"}}
                    <div class="red-group">
                        <img class="group-img-scan" src="../../image/index_scan.png" alt="img" />
                        <p class="group-text">開始掃描</p>
                    </div>
                    <div class="red-group">
                        <img class="group-img-edit" src="../../image/index_edit.png" alt="img" />
                        <p class="group-text">開始批改</p>
                    </div>
                    {{??}}
                    <div class="red-group">
                        <img class="group-img" src="../../image/index_ok_gray.png" alt="img" />
                        <p class="group-text">批改完成</p>
                    </div>
                    {{?}} {{?}} {{? it.courseId}}
                    <input type="text" hidden="" name="courseId" class="courseIdindex" value="{{=it.courseId}}" /> {{??}}
                    <input type="text" hidden="" name="courseId" class="courseIdindex" value="0" /> {{?}}
                </div>
            </div>

        </div>

點擊事件

    function IndexControl() {
        var Red = $('.app-index .index-body .body-item .item-red');
        var showRed = $('.app-index .index-body .body-item .item-white .white-right .right-bottom');
        // var startBtn = $('.app-index .index-body .body-item .item-red .red-group .group-img-start');
        var stopBtn = $('.app-index .index-body .body-item .item-red .red-group .group-img-stop');

        var delBtn = $('.app-index .index-body .body-item .item-red .red-group .group-img-del');
        var editBtn = $('.app-index .index-body .body-item .item-red .red-group .group-img-edit');
        var scanBtn = $('.app-index .index-body .body-item .item-red .red-group .group-img-scan');


        //顯示紅色遮罩層
        showRed.click(function() {
                $(this).parents('.item-white').siblings('.item-red').css('display', 'flex');
                $(this).parents('.body-item').siblings().children('.item-red').hide();
                $(this).parents('.body-item').siblings('.actived').children('.item-red').show();
                var courseId = $(this).parents('.item-white').siblings(".item-red").children('.courseIdindex').val();
                classId = $('#selectclassId').val();
                piId = $(this).parents('.item-white').find('.this-paperId').val()
                testId = $(this).parents('.item-white').children(".white-left").children('.testId').val()
                // var startBtn = $(this).parents(".item-white").siblings(".item-red").find(".group-img-start");
                // startControl(startBtn, courseId, classId, piId,testId);
                
                //點擊啟動答題
                $(this).parents(".item-white").siblings(".item-red").find(".group-img-start").click(function(event){
                    event.stopPropagation();
                    starttest_paper(courseId, classId, piId,testId)
                })

                stopControl(stopBtn, courseId, classId, piId,testId);
                cancelControl(delBtn, courseId, classId, piId,testId);
                editControl(editBtn, testId);
                scanControl(scanBtn, testId);

        });




        //隱藏紅色遮罩層
        Red.click(function() {
            $(this).hide();
        })




    }

ajax

function starttest_paper(courseId,classId,paperId,testId, callback) {

    var createBy =  $api.getStorage('global_userId');
    api.ajax({

        url: cbd_server_url  + 'exam/start',
        method: 'put',
        dataType: 'json',
        headers:{
               "Content-Type":'application/json',
          },
        data:{
          body: {
                id: testId,
                paperId: paperId,
                classId: classId,
                courseId: courseId,
                        createBy:createBy

                    }
                //status: "started"
            //   })
        },

    }, function(ret, err) {
        if (ret) {
            console.log(JSON.stringify(ret))
          var result = ret.msg;
          callback && callback(result);

        } else {
            console.log(JSON.stringify(err))
        }
    })
}
回答
編輯回答
不舍棄

就這么跟你講吧,最近一個月以來,所有題目中使用jQ綁定事件又碰到重復觸發(fā)執(zhí)行這種bug的,100%是由于:

  1. 使用了jQ的事件快捷寫法;
  2. 在綁定的事件回調(diào)中寫了另一個事件綁定。

當然,一個月是預估,一年以來都不是沒有可能。

2018年7月5日 14:55
編輯回答
空白格

建議先unbind再bind

$(btnId).unbind('click', fn)
$(btnId).bind('click', fn)

為什么不加個id呢,這樣寫選擇器太頭疼了

2017年7月24日 18:36
編輯回答
選擇

很簡單,因為你“啟動答題”的按鈕綁定事件是包在了 “...”這個東西的點擊事件里面,
那么在點擊“...”這個的時候,“啟動答題”的按鈕綁定了一個事件了
再點一次“...”的時候,“啟動答題”的按鈕又再綁定了同樣的另外的一個事件,
你把“啟動答題”的按鈕綁定事件放在外面不就行了嗎???
你要獲取的那些courseId, classId, piId,testId,不是也可以通過和“...”的共同父類一級一級往下找的嗎,不需要通過點擊"..."的$(this)來找的啊

2017年1月25日 11:45