2012-01-04 9 views
10

मैं अपने jquery-plugin (विजेट-फैक्ट्री आधारित) के अंदर एक फ़ंक्शन कॉल करना चाहता हूं।jquery - विजेट-फ़ैक्टरी प्लगइन के अंदर पैरामीटर के साथ फ़ंक्शन को कैसे कॉल करें?

इस तरह लग रहा है:

(function($, window) { 
    $.widget("mobile.multiview",$.mobile.widget, { 
     stackUp: function (source, event, data) { 
      ... 
     } 
    } 
}) (jQuery,this); 

मैं प्लगइन के बाहर से stackup कॉल करना चाहते हैं। समस्या: मुझे नहीं पता कि पैरामीटर को सही तरीके से कैसे पास किया जाए। यह काम नहीं करता:

$('#trigger').multiview("stackUp('pagination', fakeEvent, fakeData)"); 

किसी ने मुझसे एक प्लगइन के अंदर एक सार्वजनिक समारोह बुला और मानकों के साथ पास करने का correcty वाक्य रचना को इंगित कर सकते हैं?

अद्यतन:

$('#trigger').multiview('stackUp'); 

लेकिन मैं पैरामीटर कैसे पारित कर सकते हैं:

मैं इस तरह समारोह कॉल कर सकते हैं?

उत्तर

21

ठीक है, अनंत दखल के बाद, पैरामीटर या तर्क इस तरह पारित कर रहे हैं:

$("#trigger").multiview('stackUp','pagination', fakeEvent, fakeData); 

तुम बस समारोह अल्पविराम के द्वारा अलग होने के बाद पैरामीटर जोड़ने के लिए है। उम्मीद है कि यह किसी और की भी मदद करता है।

+0

धन्यवाद! जानकारी के लिए! –

+0

'' ट्रिगर'' क्या कह रहा है?: एस – OZZIE

+0

@OZZIE: 'ट्रिगर 'की आईडी वाला तत्व लेकिन यह कुछ समय पहले था। अभी भी मदद करता है – frequent

1

मैं jquery साथ बहुत परिचित नहीं हूँ, लेकिन इस प्रयास करें:

$("#trigger").multiview(function() { stackUp('pagination', fakeEvent, fakeData); }); 

ऐसा अनाम समारोह जो अपने स्थिर और गतिशील मानकों के साथ की जरूरत पर निष्पादित किया जाएगा है।

+0

एचएम। इस तरह आग लगने के लिए ढेर नहीं मिल सकता है। – frequent

+0

शायद यह गायब उद्धरण है। मैं उन्हें जोड़ दूंगा। – rekire

+0

आपका सर्वनाम समारोह अच्छा है, लेकिन मेरी स्क्रिप्ट में कभी नहीं निकाल दिया गया। मुझे विजेटी रास्ता मिला। मेरा जवाब देखें मदद के लिए Thanx! – frequent

1

मैं वास्तव में नहीं पता कैसे है कि प्लगइन प्रदान करता है और अपने कार्यों को उजागर करता है, लेकिन मैं आप निम्न में से एक कोशिश कर सकते लगता है कि होगा:

$.mobile.widget.stackUp.apply($('#trigger'), ['pagination', fakeEvent, fakeData]); 
$.mobile.multiview.apply($('#trigger'), ['pagination', fakeEvent, fakeData]); 

हालांकि इसकी पूरी तरह संभव है कि वे उस विधि का पर्दाफाश नहीं है। क्या आपके पास कोड कहीं है?

अद्यतन

वास्तव में जानने क्या इस प्लगइन मैं डॉक्स पर पढ़ा जाता है और आप में सक्षम कार्य करने की होनी चाहिए के बाद:

$('#trigger').stackUp(...) 

स्रोत देखें यहाँ: http://jqueryui.com/demos/widget/default.html - और random को देखो कार्य परिभाषित किया गया है।

वैकल्पिक रूप से आप केवल अधिक वैश्विक दायरे में फ़ंक्शन को परिभाषित कर सकते हैं और फिर इसे कॉन्फ़िगर ऑब्जेक्ट के हिस्से के रूप में उपयोग करते हैं और जब आप इसे विशिष्ट तत्वों पर लागू करना चाहते हैं।

+0

जो लौटाता है: अभिव्यक्ति का परिणाम '$ .mobile.widget.stackUp' [अपरिभाषित] एक वस्तु नहीं है। लूट। मुझे दोबारा प्रयास करने दें। नाह। काम नहीं करता – frequent

+0

आप किस कोड का मतलब है? विजेट कारखाने? – frequent

+0

हाँ, क्या आप इसे jsFiddle में रखते हैं या कहीं रहते हैं? – nav