jQuery中的on()方法在实践中遇到的问题

今天才晓得,原来jQuery里面的on()方法,给元素绑定事件的时候,绑定多少次,该事件被触发的时候,就执行多少次。
错误代码示例如下:

        let newQFlag=true;
        const btnStr = '<button class="btn btn-default btn-xs newBtn" type="button">自建问题</button>';
        $qs.on('select2:open', () => {
            if (newQFlag) {
                $('.select2-search__field').css('width', '240px');
                $('.select2-search.select2-search--dropdown').append(btnStr);
                newQFlag = false;
            }
            $('.newBtn').on('click', () => {
                const inputVal = $('.select2-search__field').val();
                if (!inputVal) {
                    alertMessage('自建问题不能为空!');
                } else {
                    $.ajax({
                        url: 'knowledge/editByA/checkQuestion',
                        type: 'POST',
                        data: cleanObject({ literal: inputVal }),
                        success: (data) => {
                            const nmsg = data.msg;
                            if (!nmsg) {
                                const $display = $('.select2-selection__rendered');
                                $display.text(inputVal);
                                $display.attr('title', inputVal);
                                alertMessage('自建问题合格!', true);
                            } else {
                                if (nmsg.status === 1) {
                                    alertMessage('该问题已经存在,将前往审核页面进行审核!');
                                    location.href = `${ctx}/knowledge/review/index?from=update&id=${nmsg.question.id}`;
                                } else if (nmsg.status === 8) {
                                    alertMessage('该问题已经存在,将前往编辑页面进行编辑!');
                                    location.href = `${ctx}/knowledge/editByA/update?pairId=${nmsg.id}`;
                                }
                            }
                        }
                    });
                }
            });
        });

当我知道这个原理之后,我之间吧click()绑定的内容放到了if里面,让这个on也只给这个元素绑定一次。这样很好理解。
可是,后来有个大神,这个几下给我改的,我就看不明白了,代码如下:
这里写图片描述

若有人知道,烦请回复哈哈!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值