zoukankan      html  css  js  c++  java
  • jquery触发两次onchange事件

    在项目中需要给select绑定改变事件,来触发动作,但是发现改变一次select,onchange方法执行两遍

    //这是那个标签,用的是我们公司内部的selectlist

    <select class="selectpicker" id="gglb" name="bulletinclass"
    title="请选择 公告类别" data-live-search="false" data-width="" ></select>

    //公告类别的变更时间联动公告模板
    $("#test").change(function () {
      alert(1);
    })

    后来给select 标签添加一个onchange属性也会触发两次,这个onchange时间的机制是,在获取焦点之后,储存一个select里面的值,当发现这个值改变的时候,触发onchange事件

    目前仅在IE8下发现此类问题,我仅测试了IE8/Chrome25/Firefox19

    网上说可以通过一个全局变量控制来拒绝,不过方法很笨,还有一种方法就是用settimeout

    $("#test").change(function () {
    var thatFun=arguments.callee;//获得这个函数本身
    var that=this;//获得这个元素
    $(that).unbind("change");//去掉绑定

    //在这里执行代码do ti

    //重新绑定这个函数
    setTimeout(function(){$(that).bind("change",thatFun)},0);
    })

  • 相关阅读:
    1136.NumberSteps
    1134.密码翻译
    1133.学分绩点
    1131.合唱队形
    1132.与7无关的数
    1130.日志排序
    Educational Codeforces Round 41 (Rated for Div. 2)
    Codeforces Round #378 (Div. 2) F
    Codeforces Round #290 (Div. 2)
    牛客网练习13 乌龟跑步
  • 原文地址:https://www.cnblogs.com/ZenoLiang/p/7262639.html
Copyright © 2011-2022 走看看