开发者社区> 问答> 正文

jquery禁用右键菜单后如何重新启用

  <script type="text/javascript">
            $(function(){
                $("button").on("click", function(e){
                    var clickId= $(e.target).prop("id");
                    console.log(clickId);
                    if("btn1" == clickId){
                        console.log("close");
                        $(document).bind("contextmenu" , function(e){
                            return false;
                        })
                    }else{
                        console.log("open");
                        $(document).bind("contextmenu" , function(e){
                            return true;
                        })
                    }
                })
            })
        </script>

这是我写的js代码,现在的问题是禁用右键菜单可以做到,但是我想重新启用就不好用了,请问有什么办法吗?

//-------------------------------------------------
想到unbind()函数,这个确实可以实现功能:

if("btn1" == clickId){

                    $(document).bind("contextmenu" , function(e){
                        console.log("close");
                        return false;
                    })
                }else{

                    $(document).unbind("contextmenu");
                }

不知道还有什么别的方法吗?

展开
收起
小旋风柴进 2016-05-30 13:38:45 1930 0
1 条回答
写回答
取消 提交回答
  • 动态绑定可以使用对象访问的方法来调用,如:

    $selecter[ isOn ? 'on' : 'off' ]();
    $selecter.on();
    $selecter.off();

    看你的需求,其实解绑无意义,解绑事件通常是用在特殊的逻辑上,

    <script type="text/javascript">
        $("button").on("click", function (e) {
            var isBtn = 'sb-stop' === $(e.target).prop('id');
            $(document).off('.btnCMEvent').on('contextmenu.btnCMEvent', isBtn ? function (e) {
                e.preventDefault();
                console.log('右键已禁用');
                return false;
            } : function () {
                $(this).off('.btnCMEvent');
            });
        });
    </script>
    2019-07-17 19:20:26
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关课程

更多

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载