2011-09-08 13 views
6

फेसबुक जेएस एसडीके के पास jQuery के trigger() फ़ंक्शन, FB.Event.fire के बराबर है जो आपको विशेष घटनाओं के लिए संलग्न हैंडलर को ट्रिगर करने की अनुमति देता है। QUNit में मेरे यूनिट परीक्षणों के लिए यह सहायक है। यह मूल रूप से काम करता है जैसा कि आप इसकी उम्मीद करेंगे; FB.Event.fire("comment.create", location.href);comment.create ईवेंट के लिए मेरे हैंडलर को आग लगा देता है।मैं ट्विटर उद्देश्यों को प्रोग्रामेटिक रूप से कैसे ट्रिगर कर सकता हूं?

Twitter's object वेब इरादों के लिए, twttr ऐसा लगता है जैसे यह समान हो सकता है, twttr.events.trigger(), लेकिन इसकी अनियंत्रित।

छोड़कर, मैं यह समझ नहीं सकता कि कोड में इसे सही तरीके से ट्रिगर कैसे किया जाए, बिना किसी त्रुटि को फेंक दिया।

मैं इस ऑब्जेक्ट से जुड़े हैंडलर को प्रोग्रामेटिक रूप से कैसे परीक्षण कर सकता हूं?

के लिए कोड की तरह:

twttr.events.bind("click", function(intent){ 
    console.dir(intent); 
}); 

मैं की तरह कुछ करने से यह गति प्रदान करने में सक्षम होने की उम्मीद थी: twttr.events.trigger("click")

सब कुछ मैं एक त्रुटि में परिणाम की कोशिश, और मैं करने में सक्षम नहीं कर रहा हूँ obfuscated source code को समझें।

मैं JSFiddle पर कुछ बुनियादी कोड डाल दिया है: http://jsfiddle.net/YL6SN/

उत्तर

3

हैलो याहेल अच्छा सवाल है,

यह अगर आप इस फोन काम करना चाहिए:

twttr.events.trigger("click", {}); 

यह एक दूसरा पैरामीटर उम्मीद वह ऑब्जेक्ट है जो आपके कॉलबैक पर वापस भेज दिया गया है। जब यह स्वाभाविक रूप से होता है इस वस्तु अन्य पैरामीटर

{target: b,region: "intent",type: "click",data: {}} 

आप एक खाली वस्तु पार कर लेते हैं साथ से भर जाता है जैसे मैं इसे के रूप में अच्छी तरह से काम करेगा, लेकिन अपने कॉलबैक में आप केवल type संपत्ति के बाद से इस से जोड़ा जाता है के साथ वस्तु प्राप्त प्रस्तावित ट्रिगर।

और यह वही त्रुटि थी जब आप दूसरे पैरामीटर को पास नहीं करते थे। यह type पैरामीटर undefined पर जोड़ने की कोशिश करता है और फिर मर जाता है।

+0

अच्छा। धन्यवाद, एडुआर्डो। http://jsfiddle.net/YL6SN/2/ काम करता है। ऐसा लगता है कि 'लक्ष्य' को ट्विटर आइफ्रेम का डीओएम तत्व माना जाता है (जो मेरे परीक्षण के लिए महत्वपूर्ण है)। – Yahel

संबंधित मुद्दे

 संबंधित मुद्दे