refactor: 重构 dropdown 打开与关闭逻辑 (#2349)

* refactor: 重构 dropdown 打开与关闭逻辑

* chore: 优化变量

* refactor: 保留采用 elem 的 jQuery Data 进行面板打开状态的判断

* fix: 优化延时移除面板时的实例不一致的问题
This commit is contained in:
贤心
2024-11-25 11:33:32 +08:00
committed by GitHub
parent 636551547b
commit 1670cbab8f
5 changed files with 147 additions and 108 deletions

View File

@@ -46,6 +46,7 @@ layui.use(function(){
// 绑定输入框
dropdown.render({
elem: '#ID-dropdown-demo-base-input',
closeOnClick: false, // 不开启“打开与关闭的自动切换”,即点击输入框时始终为打开状态
data: [{
title: 'menu item 1',
id: 101
@@ -118,4 +119,4 @@ layui.use(function(){
});
});
</script>
</script>

View File

@@ -65,20 +65,22 @@ layui.use(function(){
// 其他操作
util.event('lay-on', {
// 全局右键菜单
// 改变触发右键菜单的目标元素
contextmenu: function(othis){
var ID = 'ID-dropdown-demo-contextmenu';
if(!othis.data('open')){
if (!othis.data('open')) {
dropdown.reload(ID, {
elem: document // 将事件直接绑定到 document
elem: document // 设置全局元素右键
});
layer.msg('已开启全局右键菜单,请尝试在页面任意处单击右键。')
othis.html('取消全局右键菜单');
othis.data('open', true);
} else {
dropdown.reload(ID, {
elem: '#'+ ID // 重新绑定到指定元素上
elem: '#'+ ID // 设置局部元素右键
});
layer.msg('已取消全局右键菜单,恢复默认右键菜单')
othis.html('开启全局右键菜单');
othis.data('open', false);
@@ -86,4 +88,4 @@ layui.use(function(){
}
});
});
</script>
</script>