开发者社区> 问答> 正文

jquery插件contextjs怎么获取点击右键的对象

小旋风柴进 2016-05-30 14:14:35 890

jquery插件contextjs怎么获取点击右键的对象

分享到
取消 提交回答
全部回答(2)
  • 一生有你llx
    2019-07-17 19:20:31

    楼上正解

    0 0
  • 小旋风柴进
    2019-07-17 19:20:31

    我猜你得针对不同的对象绑定不同的 context。
    如果大部分 context 是相似的,你可以考虑写一个 create 函数来为不同的对象创建 context。

    给你举个例

    HTML
    <ul>
        <li id="li1">第1行</li>
        <li id="li2">第2行</li>
        <li id="li3">第3行</li>
        <li id="li4">第4行</li>
        <li id="li5">第5行</li>
    </ul>
    JavaScript
    如果给某个 li 添加右键菜单是这样
    
    context.attach("#li1", {
        text: "菜单项",
        action: function(e) {
            alert("menu for #li1");
        }
    });

    但问题是要给每个都加,所以用一个 builder 函数

    // 写个 builder 函数
    function attachContext(selector) {
        context.attach(selector, {
            text: "菜单项",
            action: function(e) {
                alert("menu for " + selector);
            }
        })
    }
    
    // 然后给每个 li 加菜单
    $("li[id]").each(function() {
        var id = $(this).prop("id");
        attachContext("#" + id);
    })

    总结:把每个菜单不同的地方提取出来作为 builder 的参数传入,包括附加到的DOM对象本身也作为参数,就可以在 action 中自由处理了。

    如果每个的菜单都不同肯定是一个个写,你也不会在这里纠结了

    0 0
添加回答

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程