为了账号安全,请及时绑定邮箱和手机立即绑定

关于jQuery的右键菜单插件 数据与试图分离的问题

我发现右键菜单插件需要把对右键内容的定义写在html中 按理来说html负责视图 邮件菜单的内容从可见的角度上大概可以理解为“数据”把 那么有什么办法把他们分离吗? (其实话说回来,好像右键菜单也是视图的一部分唉,但是我还是想把他们分开)

正在回答

1 回答

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>右键菜单插件</title>
    <link href="http://www.imooc.com/data/jquery.contextmenu.css" rel="stylesheet" type="text/css" />
    <link href="style.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="http://www.imooc.com/data/jquery-1.8.2.min.js"></script>
    <script src="http://www.imooc.com/data/jquery.contextmenu.js" type="text/javascript"></script>
</head>

<body>
<div id="divtest">
    <div class="title"><span class="fl">点击右键</span></div>
    <div class="content">
        <input id="btnSubmit" type="button" value="提交" />
        <div class="tip"></div>
    </div>
    <div class="contextMenu" id="sysMenu"></div>
</div>

<script type="text/javascript">
    $(function () {
        //菜单数据
        var menuData=[
            {id:'Li3',text:'保存',icon:'http://img1.sycdn.imooc.com//52e4b34b0001bb6d00160016.jpg'},
            {id:'Li4',text:'退出',icon:'http://img1.sycdn.imooc.com//52e4b3680001424900160016.jpg'}
        ];
        //生成菜单
        var menuStr = '<ul>';
        for(var i= 0,len = menuData.length;i<len;i++){
            var data = menuData[i];
            menuStr+='<li id="'+data.id+'"><img src="'+data.icon+'" />'+data.text+'</li>';
        }
        menuStr += '</ul>';
        $('#sysMenu').html(menuStr);

        $("#btnSubmit").contextMenu('sysMenu',
                { bindings:
                {
                    'Li3': function (Item) {
                        $(".tip").show().html("您点击了“保存”项");
                    },
                    'Li4': function (Item) {
                        $(".tip").show().html("您点击了“退出”项");
                    }
                }
                });
    });
</script>
</body>
</html>

不知道这样算不算你说的分离

1 回复 有任何疑惑可以回复我~
#1

零零拾 提问者

额 你厉害 竟然直接去操作html了 不过 还是棒棒哒 要是直接把这些操作封装到插件里 然后直接用字面量去定义 那就看起来更棒了 采纳你了哦
2015-12-14 回复 有任何疑惑可以回复我~
#2

Scny

大哥问一下<li id="'+data.id+'">这个中间的id为何要'+data.id+'这样写呀?
2016-01-10 回复 有任何疑惑可以回复我~
#3

李晓健 回复 Scny

因为这个id是动态生成的呀
2016-01-10 回复 有任何疑惑可以回复我~
#4

Scny 回复 李晓健

动态生成的就要用‘++’这样的格式包围是这个意思吗?
2016-01-10 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消
jQuery基础课程
  • 参与学习       154768    人
  • 解答问题       7184    个

加入课程学习,有效提高前端开发速度

进入课程

关于jQuery的右键菜单插件 数据与试图分离的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信