它是基于jQuery UI方便在JavaScript中,循环功能无法访问环路范围变量
假设这里是HTML代码
<div id="menu" class="easyui-menu" style="width:120px;">
<div>New</div>
<div>
<span>Open</span>
<div style="width:150px;">
<div><b>Word</b></div>
<div>Excel</div>
<div>PowerPoint</div>
</div>
</div>
<div data-options="iconCls:'icon-save'">Save</div>
<div class="menu-sep"></div>
<div>Exit</div>
</div>
问题是,如果你设置菜单在循环中,功能总是被最后一条语句触发,即i
总是等于4
在console.log(itemLabel + i + "is selected.");
$(function(){
var jqMenu = $("#menu");
for (var i = 0; i < 5; i++) {
var itemLabel = "item " + i;
// correct
var onclickFunction = function(){
console.log(itemLabel + i + "is selected.");
}
jqMenu.menu("appendItem",{
"text":itemLabel,
"onclick": function(){
console.log(itemLabel + " is selected.");
}
});
}
})
$(document).bind('contextmenu',function(e){
e.preventDefault();
$("#menu").menu('show', {
left: 200,
top: 100
});
});