【发布时间】:2020-01-02 21:34:25
【问题描述】:
我正在使用这个jquery plugin。菜单的实例化如下所示:
$.contextMenu({
selector:'.disposition-menu',
zIndex: 120,
callback: function(key, options) {
var stepID = $(this).closest('.card').attr("id").substring(5);
handle_disposition(key,stepID);
},
items: {
"pin": {name: "Pin to top"},
"unpin": {name:"Unpin"},
"complete": {name: "Mark step completed"},
"remove": {name: "Remove step from Map"},
},
events: {
show: function(){}, //this is where I'm lost
hide: function(){} //this is where I'm lost
},
trigger: 'hover'
});
'handle disposition' 函数与 php 和数据库交互,将 '.card' 在数据库中记录为固定或取消固定,以便在重新加载页面时正确显示。 HTML 是这样的 bootstrap 4 卡片:
<div class="card" >
<div class="card-header ">
<table class="title-table">
<tr>
<td>...</td>
<td>...</td>
<td>...</td>
<td class="disposition-menu">⋮</td>
</tr>
</table>
</div>
<div class="card-body">
...{body content}
</div>
</div>
我想做的是在 pin 和 unpin 菜单项之间切换。一次只能在菜单上显示其中一个。如果该项目已经“固定”(即在数据库中标记,并由 '.card' html 中的数据属性表示),则应该出现“取消固定”......反之亦然。同样,一旦在菜单上单击“Pin...”,应立即更改菜单以隐藏“Pin”项并显示“Unpin”项,反之亦然
我查看了该插件的文档,但在使用带有冒号(例如选择器:)和回调的键之后的函数时,我有点新手。该插件显然有一个"visible:" 键,还有“显示:”和“隐藏:”键(按照this issue 使用,但我不知道如何将这些元素串在一起以实现我的目标。
【问题讨论】:
标签: javascript jquery dom contextmenu