我正在嘗試做我做過很多次的事情。我無法弄清楚爲什麼這不起作用。無論我如何編寫jQuery代碼,它都不起作用。 menuitems[i].action()
只是不起作用。下面是示例1在這個示例中,無論點擊哪個項目,它都會返回最後一項的動作(在本例中爲alert('Forward!')
)。第二個返回未定義的屬性。下面的完整錯誤。jQuery插件返回「無法讀取未定義的屬性」
我的jQuery插件被稱爲像這樣(下面的例子是與此相同的調用發生什麼):
$('p').contextMenu([
{
name:'Back',
action:function(){
alert('Back!');
},
icon:'http://cdn.iconfinder.net/data/icons/crystalproject/16x16/actions/agt_back.png'
},
{
name:'Forward',
action:function(){
alert('Forward!');
},
icon:'http://cdn.iconfinder.net/data/icons/crystalproject/16x16/actions/agt_forward.png'
}
]);
例1:
for (i in menuitems){
$('<li/>',{
'html':'<img src="'+menuitems[i].icon+'">'+menuitems[i].name,
'class':o.itemClass,
'click':function(){
menuitems[i].action();
}
}).appendTo('.'+o.listClass);
}
這將返回一個警報,前進!無論哪個項目,後退或前進,都會被點擊。
例2:
var len = menuitems.length;
for (var i = 0; i < len; i++){
$('<li/>',{
'html':'<img src="'+menuitems[i].icon+'">'+menuitems[i].name,
'click':function(){
menuitems[i].action();
},
'class':o.itemClass
}).appendTo('.'+o.listClass);
}
我得到:
Uncaught TypeError: Cannot read property 'action' of undefined
其他隨機的東西,我試圖進行拆卸點擊重新連接它是appendTo()
塊之外,改變action()
到newtest()
使確定它沒有與任何內置關鍵字衝突。我也試過做$('body').append('<li>{blah blah}</li>').find('li').click(function(){/*blah blah*/});
,但它仍然返回相同的東西。我要離開創意!
你有沒有嘗試用調試器通過這個步驟? – Phil 2010-11-12 05:26:36
對調試器有任何建議嗎?我只是使用鉻的檢查員 – 2010-11-12 05:27:57
嘗試螢火蟲,一個Firefox插件 – subosito 2010-11-12 05:33:55