本方法是在不改變原 js 的情況下,通過擴展方法來實現本目的
首先在 datetimebox 控件中擴展一個 綁定雙擊事件 的方法
1 $.extend($.fn.datetimebox.methods, { 2 //綁定雙擊事件方法 3 bindDblClick: function (jq) { 4 var panel = $(jq).combo("panel"); 5 panel.find(".datebox-calendar-inner").off("dblclick").on("dblclick", function (e) { 6 var calendar = $(jq).datetimebox("calendar"); 7 var spinner = $(jq).datetimebox("spinner"); 8 var current = calendar.calendar("options").current; 9 10 var year = current.getFullYear(); 11 var month = current.getMonth() + 1; 12 var date = current.getDate(); 13 var time = spinner.spinner("getValue"); 14 15 var datetime = year + "-" + month + "-" + date + " " + time; 16 17 $(jq).datetimebox("setValue", datetime); 18 19 $(jq).combo("hidePanel"); 20 }); 21 } 22 });
然后在 datetimebox 控件中的 onShowPanel 事件中 進行綁定雙擊事件
1 $.extend($.fn.datetimebox.defaults, { 2 onShowPanel: function () { 3 $(this).datetimebox("bindDblClick"); 4 } 5 });
注意:上述兩個 擴展必須 放在 加載 datetimebox 控件 之前。
該方法是在 easyui-1.7.0 版本的基礎上 開發出來的。
2020-01-03 之前發布的 存在 一個 bug 當月份改變后雙擊將失效,修改后 又存在一個瑕疵,但不影響使用