0

我有一个带有 4 个选项的上下文菜单,我想在单击它后隐藏或禁用 1 个选项。这些是我的脚本片段。单击保存选项后,每当我再次右键单击 div 时,我只希望上下文菜单中的移动选项可用。拖动是 div 类。可能吗?

var menu = [
            {'Move':function(menuItem,menuObject){
                    $(this).css({'backgroundColor':'red'});
                    return true; 
                } 
            },
            {'Save':function(menuItem,menuObject){
                    $(this).css({'backgroundColor':'blue'});
                    return true;
                }
            }
        ];

$(function() {
            $('.drag').contextMenu(menu,{
                showSpeed:500,
                hideSpeed:500,
                showTransition:'fadeIn',
                hideTransition:'fadeOut'
            });
        });

提前致谢

4

1 回答 1

0

首先类拖动是父元素的类。所以你必须找到“保存”元素的类。让我们假设该类是 .save,然后单击删除它。这是通过以下代码完成的:

$(".save").click(function{
 $(this).remove();
})

如果再次右键单击,将再次创建元素,上述功能将失去作用。所以我可以看到,这是你的问题。

但是,为什么在“保存”某些内容后需要隐藏保存按钮?也许用户想再次保存。

如果我们能看到一个演示以了解您尝试实现的应用程序,那将很有帮助。

如果您尝试仅对已更改(拖动)的元素应用规则,则必须在类或保存元素位置的数据库中标记已更改的元素。然后,您可以通过 jquery 选择器仅操作标记(更改)。

if ((.drag).hasClass('.changed')){
  $(".save").css({"visibility: visible"});
}

不要忘记默认隐藏css中的元素

.save{visibility: none}
于 2012-04-24T11:38:03.933 回答