मैं कुछ ऐसा करने की कोशिश कर रहा हूं जिसे मैंने कई बार किया है। मैं यह नहीं समझ सकता कि यह क्यों काम नहीं कर रहा है। कोई फर्क नहीं पड़ता कि मैं 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()
ब्लॉक के बाहर यह reattaching थे, newtest()
को action()
बदल बनाने के लिए यकीन है कि यह किसी भी निर्मित कीवर्ड के साथ विरोधाभासी नहीं था। मैंने $('body').append('<li>{blah blah}</li>').find('li').click(function(){/*blah blah*/});
करने का भी प्रयास किया लेकिन यह अभी भी वही चीज़ लौटा। मैं विचार से बाहर हूँ!
क्या आपने डीबगर के साथ इस माध्यम से कदम उठाने का प्रयास किया है? – Phil
डीबगर पर कोई सिफारिशें हैं? मैं सिर्फ क्रोम के इंस्पेक्टर का उपयोग कर रहा हूं –
फ़ायरबग आज़माएं, फ़ायरफ़ॉक्स एडन – subosito