2012-07-02 12 views
5

मैं जावास्क्रिप्ट/jQuery में नया हूं और मैं HTML5 वीडियो प्ले के लिए एक प्ले बटन बनाने की कोशिश कर रहा हूं। मेरे कोड अब तक:

//return a jQuery object 
var video = $('#myVideoTag'); 

//Play/Pause control clicked 

$('.btnPlay').on('click', function() { 
    if(video[0].paused) { 
     video[0].play(); 
    } 
    else { 
     video[0].pause(); 
    } 
    return false; 
}); 

मैं इस त्रुटि प्राप्त हो रही:

$(".btnPlay").on is not a function 
[Break On This Error] 

$('.btnPlay').on('click', function() { 

मैं मेरी आंकड़ा बाहर के जीवन क्या गलत है के लिए नहीं। मेरे पास कक्षा है .btnplay पृष्ठ पर ठीक से परिभाषित किया गया है। मैं एक ट्यूटोरियल का पालन कर रहा हूं जो किसी भी समस्या के साथ एक समान विधि का उपयोग करने लगता है। कोई विचार?

उत्तर

8

विधि on jQuery संस्करण 1.7 में पेश किया गया था।

मुझे लगता है कि आपको अपनी jQuery लाइब्रेरी को newest version पर अपग्रेड करना होगा।

अन्यथा, आप bind उपयोग कर सकते हैं:

$('.btnPlay').bind("click", function() { 
    // ... 
}); 

या उसके शॉर्टकट विधि click:

$('.btnPlay').click(function() { 
    // ... 
}); 
0

जावास्क्रिप्ट के पुराने संस्करणों पर .on विधि के लिए एक वैकल्पिक .delegate है। आप पेरेंट तत्व पर .delegate('.btnPlay', 'click', function(){...}) का उपयोग करना चाहिए ही कार्यक्षमता

1

jQuery 1.7 के रूप में है, .delegate().on() विधि ने ले लिया है। हालांकि, पिछले संस्करणों के लिए, यह घटना प्रतिनिधिमंडल.delegate() का उपयोग करने का सबसे प्रभावी माध्यम है।

एक अन्य विकल्प .live() है लेकिन संस्करण 1.7 को हटा दिया गया है। JQuery के पुराने संस्करणों के उपयोगकर्ताओं को .delegate().live() वरीयता में .delegate() का उपयोग करना चाहिए।

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