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

JavaScript034

jquery插件contextjs怎么获取点击右键的对象,第1张

针对不同的对象绑定不同的 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 中自由处理了

执行上下文有 三种 类型:

执行上下文也是一个对象!那么这个对象中包括了哪些内容呢

每一个 执行上下文都包括三个属性:

存储执行上下文的数据结构是堆栈,它是一种先进后出的数据结构, 称其为 执行栈

1.当js引擎首次读取读取脚本时,便会创建一个全局执行上下文,并将其压入栈底,

我们假设一开始的上下文执行栈为 []