easyui (combobox或者combogrid)下拉框在點擊其他地方時候會回縮,期望效果為下拉框一直處於展開狀態


 

 

需求:點擊左側的用戶,右側能夠顯示點擊的用戶,達到類似QQ群添加群成員的效果
思路設計:依靠easyui自帶的Combogrid實現,combogrid有onSelect方法,能夠在選中下拉框選項時候觸發動作,這時候配合

  $("#xxx").combogrid("setValue", item); //需重新賦值(這個地方需要再重新賦值一次)
  var gridData = $('#BaseCustomerIdsCom').combogrid('grid'); // 獲取數據表格對象
  var rowData = gridData.datagrid('getSelected'); // 獲取選擇的行


能夠獲取到當前行的數據,把數據在賦值到右側便可,右側部分省略

遇到難點:

下拉框想讓他一直處於下拉狀態,有人會問為啥不用datagrid組件做,因為combogrid自帶搜索功能,使用這個功能用combogrid會好用一些,唯一要解決的問題就是不讓下拉框在點擊其他地方時候回收。
最開始的想法是,捕獲全局的點擊事件,在里面加入$('#xxx').combobox('showPanel');
實際不理想,因為在點擊其他地方的時候依舊會收一下,再顯示,效果不好看
//捕獲全局點擊事件
$(document).on('click', function (e) {
$('#BaseCustomerIdsCom').combobox('showPanel');
});
后面找了很久,一直找不到合適的解決辦法,查看官方文檔也沒有相應的內容
最后發現,其實combox的panel有個onClose的函數,在panel關閉要觸發時候,嘗試加入顯示panel會怎么樣?嘗試一下,難點解決
$('#xxx').combobox('panel').panel({
onClose: function () {
$('#xxx').combobox('showPanel');
}
})


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM