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);
    })

  • 相关阅读:
    bzoj2438
    bzoj3040
    [AHOI2009]维护序列
    [JSOI2008]最大数
    洛谷3378堆模板
    洛谷1439
    洛谷2756
    bzoj1016
    洛谷1875
    [模板] 强连通分量
  • 原文地址:https://www.cnblogs.com/ZenoLiang/p/7262639.html
Copyright © 2011-2022 走看看