jQuery:动态分配的函数不起作用
jQuery: function assigned dynamically is not working
我已经用jQuery实现了一个菜单,其中的项和函数是动态分配的。此代码有效。
但由于我需要在点击选项时隐藏菜单,我更改了
p.click(funcs[i].f);
至
p.click(function(){
menu.hide();
funcs[i].f;
});
和这里一样,但我得到了Uncaught TypeError: Cannot read property 'f' of undefined
,因为变量I超出了界限。如何修复此代码?
我建议:
for (var i = 0; i < len; i++) {
(function(i){$('<p />', {
'style' : 'cursor: pointer',
'text' : funcs[i].title,
'click' : function(){
funcs[i].f();
menu.hide();
}
}).appendTo(menu)})(i);
}
JS Fiddle演示。
上面将i
变量传递到内部范围,并使用稍微不同的方法(由于个人偏好)来创建<p>
元素。
试试这个:
(function(idx) {
p.click(function(){
menu.hide();
funcs[idx].f();
});
})(i);
相关文章:
- Ember Data DS.Model's set函数不起作用
- 为什么我的JavaScript堆栈排序函数不起作用
- Javascript onchange()函数不起作用
- 另一个Ajax函数触发的Ajax函数不起作用
- 从PHP调用JS函数不起作用
- jQuery validate函数不起作用
- JS-窗口宽度函数不起作用
- javascript函数,该函数不起作用,但不会显示任何错误
- 为什么这个排序函数不起作用
- 为什么这个反向函数不起作用
- Javascript parseInt 函数不起作用
- 我的函数不起作用,Ajax调用,JQuery,调用外部?我不知道
- 主干构造函数不起作用
- Javascript:this.value 函数不起作用
- Mocha 的 beforeEach() 和 done() 函数不起作用
- 在jQuery中,我的函数不起作用
- jquery-ui-rails的draggable和dropable函数不起作用
- 数学函数不起作用
- Javascript-创建打印到HTML的函数不起作用
- 我上传了客户's服务器一个js函数不起作用