首页 新闻 会员 周边 捐助

插件扩展,事件解除绑定的疑问

0
悬赏园豆:50 [已关闭问题] 关闭于 2016-12-14 15:41

 

 
 //--------------easyui datebox 只显示月份扩展------------------------
$.extend($.fn.datebox.methods, {
 yearmonth:function(jq,callback){
  var p = jq.datebox('panel'), //日期选择对象
   tds = p.find('div.calendar-menu-month-inner td'),//日期选择对象中月份
   span = p.find('.calendar-title').find("span"); //显示月份层的触发控件
   jq.datebox({
             onShowPanel: function () {//显示日趋选择对象后再触发弹出月份层的事件,初始化时没有生成月份层
                 span.click(); //触发click事件弹出月份层
                 setTimeout(function () {//延时触发获取月份对象,因为上面的事件触发和对象生成有时间间隔
                     tds = p.find('div.calendar-menu-month-inner td');
                     //失效tds.unbind("click",_customer_select_year_month).bind("click",_customer_select_year_month);
                     tds.unbind("click").bind("click",_customer_select_year_month);//有效
                 }, 0);
                 var _customer_select_year_month=function (e) {
                        e.stopPropagation(); //禁止冒泡执行easyui给月份绑定的事件
                        var year = /\d{4}/.exec(span.html())[0]//得到年份
                        , month = parseInt($(this).attr('abbr'), 10); //月份,这里不需要+1
                        jq.datebox('hidePanel')//隐藏日期对象
                        .datebox('setValue', year + '-' + month); //设置日期的值
                        callback(year,month);
                    }
             },
             parser: function (s) {
                 if (!s) return new Date();
                 var arr = s.split('-');
                 return new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, 1);
             },
             /*getMonth返回的是0开始的,忘记了。。已修正*/
             formatter: function (d) { return d.getFullYear() + '-' + (d.getMonth()+1); },
    });
 }
}); 
klguang的主页 klguang | 初学一级 | 园豆:2
提问于:2016-05-21 10:57
< >
分享
所有回答(2)
0

兄弟。 你想问什么。 是不是明明解除绑定了。 这个事件还是有效? 

情不知所起一往而深 | 园豆:87 (初学一级) | 2016-05-23 10:47
0

问题解决,使用 datepicker,而非easyui本身的date组件


klguang | 园豆:2 (初学一级) | 2016-12-14 15:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册