jquery插件contextjs怎么获取点击右键的对象-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

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

展开
收起
小旋风柴进 2016-05-30 14:14:35 2125 0
2 条回答
写回答
取消 提交回答
  • 一生有你llx
    专注物联网

    楼上正解

    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 中自由处理了。

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

    2019-07-17 19:20:31
    赞同 展开评论 打赏
问答排行榜
最热
最新
相关课程
更多
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载