首页 > 为什么我绑定的change事件在选择的时候会执行两次?

为什么我绑定的change事件在选择的时候会执行两次?

    <?php
    /**
     *结算页面添加收货地址模板
     *
     *2015年11月25日17:12:01
     * 
     */
    
    use yii\helpers\Url;
    
    
    ?>
    
    
    
    
    <form id='add_addr_form' method="POST">
        <input type="hidden" name='area_id' id='area_id'>
        <div class="consignee-form">
            <a href="javascript:void(0);" class="close action-close-address"><img src="app/b2c/statics/images/ico9.gif" /></a>
            <p>
            <span class="f14">添加收货人信息</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <span class="gary"><input type="checkbox" name="" />设为默认地址</span>
            </p>
            <p><label><em>*</em>收货人:</label><input type="text" class="w1" /></p>
            <p>
    
            <label><em>*</em>所在地区:</label>
    
            <select id='one'>
                
            </select>
    
            <select id='two' style="display:none;">
                    <option>朝阳区</option>
            </select>
            
            <select id='three' style="display:none;">
                <option>三四环之间</option>
            </select>
    
            </p>
    
            <p><label><em>*</em>详细地址:</label><input type="text" class="w2" /></p>
    
            <p><label><em>*</em>邮编:</label><input type="text" /></p>
    
            <p><label><em>*</em>手机号:</label><input type="text" class="w3" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            或固定电话:&nbsp;<input type="text" class="w3" />
            </p>
    
            <p class="time"><span class="gary"><input type="checkbox" />指定送货时间</span>
            &nbsp;&nbsp;&nbsp;
            <select>
                <option>任意日期</option>
            </select>
            <select>
                    <option>任意时间段</option>
            </select>
            </p>
    
            <div class="btn">
                <a href="javascript:void(0);"><img src="app/b2c/statics/images/shipping_bc_btn.gif" /></a>
                <a href="javascript:void(0);" class="action-close-address"><img src="app/b2c/statics/images/shipping_gb_btn.gif" /></a>
            </div>
    
        </div>
    </form>
    
    
    
    <script>
        
    $(function(){
    
        bind_event();
        
        var data = eval('('+region_Data+')'); //省市县三级数据池
        
        var one   = data[0]; //一级省份
        var two   = data[1]; //二级市级 多维
        var three = data[2]; //三级县级 多维
    
        //初始化一级城市
        var one_html = two_html = three_html = '';
    
        one_html   += '<option>请选择</option>';
        two_html   += '<option>请选择</option>';
        three_html += '<option>请选择</option>';
    
    
        for(var i=0;i<one.length;i++)
        {   
            var temp_full_name = one[i].split(':');
            one_html += '<option value='+temp_full_name[2]+' data='+temp_full_name[2]+'>'+temp_full_name[0]+'</option>'
        }
    
        $('#one').append(one_html);
       
        
    
    });
    
    
    
    /**
     * 给select 下拉框绑定事件
     * @return {[type]} [description]
     */
    function bind_event()
    {    
      //绑定了事件,奇怪的是 会自动执行两次
        $('#one').change(function(){
    
            var id = $(this).val();
    
    
            alert(id);
            
    
        });
    
    
    
    }
    
    
    
    
    
    </script>

你绑定后修改了dropdown的内容所以又触发了一次。


精简了一下你的代码
么有问题哦~~~
你看是是不是有其它同事集成页面的是否触发了change事件

<!DOCTYPE html>
<html>
<head>
    <title>Number Entry</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="../script/jquery-2.1.3.min.js"></script>
</head>
<body>
<form>
    <select id="one">
    </select>
</form>

</body>
<script type="text/javascript">
    $(document).ready(function() {
        bind_event();
        var one   = ["北京:BJ:0","上海:SH:1","天津:TJ:2","重庆:CQ:3"]
        //初始化一级城市
        var one_html = '';

        one_html += '<option>请选择</option>';


        for(var i=0;i<one.length;i++)
        {
            var temp_full_name = one[i].split(':');
            one_html += '<option value='+temp_full_name[2]+' data='+temp_full_name[2]+'>'+temp_full_name[0]+'</option>'
        }

        $('#one').append(one_html);
        
        //移动到ready函数内部
        function bind_event()
        {
            //绑定了事件,奇怪的是 会自动执行两次
            $('#one').change(function(){
    
                var id = $(this).val();
                console.log(id);
    
    
            });
    
        }
    });

    /**
     * 给select 下拉框绑定事件
     * @return {[type]} [description]
     */
     //移动到ready函数内部,防止变量污染
    /*
    function bind_event()
    {
        //绑定了事件,奇怪的是 会自动执行两次
        $('#one').change(function(){

            var id = $(this).val();
            console.log(id);


        });

    }
    */
</script>
</html>
【热门文章】
【热门文章】