2011-05-14 9 views
6

मैं वर्डप्रेस के लिए एक प्लगइन का निर्माण कर रहा हूँ और अब तक तो पीएचपी पुस्तकालय के साथ अच्छा। लेकिन मुझे जावास्क्रिप्ट एपीआई के साथ कुछ समस्याएं हैं।jQuery और Vimeo Froogaloop एपीआई

मैं jQuery के साथ उपयोग करने की कोशिश कर रहा हूँ, और मुझे लगता है कि jQuery के WordPress संस्करण $f शॉर्टकट के साथ खिलवाड़ कर रहा है। यह क्यों काम नहीं करेगा?

var vimeoPlayer = { 

    init: function() { 
     var vimeoPlayers = document.querySelectorAll('iframe'), 
     player; 

     jQuery('iframe.vimeo-player').each(function(index, iframe){ 
      player = vimeoPlayers[index]; 
      $f(player).vimeoPlayer.addEvent('ready', vimeoPlayer.ready); 
     }); 
    }, 

    addEvent: function(element, eventName, callback) { 
     if (element.addEventListener) { 
      element.addEventListener(eventName, callback, false); 
     } 
     else { 
      element.attachEvent(eventName, callback, false); 
     } 
    }, 

    ready: function(player_id) { 
     alert(player_id); 
    } 
} 

jQuery(document).ready(function($){ 
    vimeoPlayer.init.call(); 
}); 

आप temp.woodshop.tv/?work/?dickies-campaign/? पर कार्रवाई में इसे देख सकते हैं।

TypeError: Result of expression '$f(player).vimeoPlayer' [undefined] is not an object.

उत्तर

17

एक मुद्दा है कि addEvent दोनों एक समारोह है कि आपके द्वारा निर्धारित है और यह भी $ f (खिलाड़ी) वस्तु की एक विधि है। ऐसा लगता है कि आप दोनों को भ्रमित कर रहे हैं। $ एफ (प्लेयर) ऑब्जेक्ट की ऐडवेन्ट विधि केवल दो तर्क, प्लेयर ईवेंट का नाम और फ़ंक्शन कहलाती है। इसे $ f (your-iframe) के रूप में उपयोग किया जाना चाहिए .addEvent ('vimeo event', your_function);

आपका addEvent समारोह आईई और W3C तरीकों के बीच की घटनाओं को एकजुट करेंगे। इसकी आवश्यकता नहीं है क्योंकि आप jQuery का उपयोग कर रहे हैं। jQuery (जो भी) .click() एक ही बात करता है। मुझे आपके स्निपेट का कोई भी भाग दिखाई नहीं देता है जहां आपको इसकी आवश्यकता है, लेकिन यदि आप करते हैं, तो मैं बस jQuery विधि का उपयोग करता हूं।

इसके अलावा, वीडियो प्लेयर वस्तु $ f (खिलाड़ी) .vimeoPlayer के बजाय $ f (खिलाड़ी)

इस

jQuery('iframe.vimeo-player').each(function(){ 
    $f(this).addEvent('ready', ready); 
}); 

एक और नोट करने के लिए बात की कोशिश करो होना चाहिए कि किसी भी अतिरिक्त खिलाड़ी घटनाओं की जरूरत है अपने तैयार कॉलबैक फ़ंक्शन से जुड़ने के लिए। उदाहरण के लिए:

function ready(player_id){ 
    $f(player_id).addEvent('play', play); 
    $f(player_id).api('play'); 
    alert("Ready!!!"); 
} 
function play(){ 
    alert("Playing!!!"); 
} 

मैं एक कठिन समय की जानकारी मैं Vimeo के Froogaloop एपीआई पर चाहते हैं खोजने लेकिन Vimeo Froogaloop API Playground एक दर्जन बार के बारे में परिशोध के बाद मैं यह कैसे काम करता करने के विचार प्राप्त करने के लिए शुरू कर लिया है।

शुभकामनाएं!

+1

अरे जॉन, मैंने इसे यहां एक कामकाजी उदाहरण में बदल दिया: http://labs.funkhausdesign.com/examples/vimeo/froogaloop2-api-basics.html –

+1

शानदार धन्यवाद! Vimeo के अपने एपीआई उदाहरण वांछित होने के लिए थोड़ा छोड़ देते हैं – Simon27

+0

बहुत बहुत धन्यवाद, इससे मुझे वीमियो के खेल का मैदान उदाहरण (इसके साथ कुछ घंटों खर्च करने के बाद) में बेहतर मदद मिली। – ShayneStatzell

0

के बजाय $f(player).vimeoPlayer.addEvent कोशिश $(this).addEvent:

मैं इस त्रुटि मिलती है।

+0

धन्यवाद, लेकिन $ f() Vimeo एपीआई के लिए एक शॉर्टकट है, तो यह वहाँ की जरूरत है। हालांकि मैंने इसे इस तरह से करीब प्राप्त किया: फ्रूग्लोपॉप (यह) .addEvent ('तैयार', vimeoPlayer.ready); लेकिन वह एक "eventCallbacks [target_id] लाइन 22 अपरिभाषित है" देता है उनके एपीआई में त्रुटि। –

+0

विश्लेषण करते हैं: "$ f (प्लेयर)। VimeoPlayer.addEvent ('ready', vimeoPlayer.ready)", यहां $ f (प्लेयर) इनपुट के रूप में एक आईफ्रेम (या HTML) टैग लेता है और उसे कुछ ऐसा करना चाहिए जिसमें vimeoPlayer है वस्तु (क्योंकि केवल तब यह कोड सही है)। । लेकिन सावधानीपूर्वक जांच कर यह पाया जाता है कि न तो $ एफ (खिलाड़ी) कुछ भी लौटाता है और न ही vimeoPlayer को किसी ऑब्जेक्ट के रूप में इस्तेमाल करने से पहले घोषित किया जाता है .... इसलिए मुझे नहीं पता कि इस मामले में आपकी मदद कैसे करें :-(मैं केवल सक्षम हूं समस्या का पता लगाएं ... क्षमा करें ड्रू – seoul

+0

या: '' 'jQuery ('iframe.vimeo')। प्रत्येक (फ़ंक्शन() {Froogaloop (यह) .addEvent ('तैयार', तैयार);});' ' ' – danger89

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