2012-07-02 60 views
5

Tôi mới sử dụng Javascript/jQuery và tôi đang cố gắng tạo nút phát để phát lại video HTML5. Mã của tôi cho đến nay:

//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; 
}); 

tôi tiếp tục nhận được lỗi này:

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

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

tôi không thể cho cuộc đời của nhân vật của tôi ra khỏi những gì là sai. Tôi có lớp .btnPlay được định nghĩa đúng trên trang. Tôi đang làm theo một hướng dẫn mà dường như sử dụng một phương pháp giống hệt nhau mà không có vấn đề gì. Bất kỳ ý tưởng?

Trả lời

8

Phương pháp on được giới thiệu trong phiên bản jQuery 1.7.

Tôi nghĩ bạn phải nâng cấp thư viện jQuery của mình lên newest version.

Nếu không, bạn có thể sử dụng bind:

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

hoặc phương pháp shortcut của nó click:

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

Một thay thế cho phương pháp .Trên trên các phiên bản cũ của javascript là .delegate. Bạn nên sử dụng .delegate('.btnPlay', 'click', function(){...}) trên yếu tố phụ huynh để có cùng chức năng

1

Tính đến jQuery 1,7, .delegate() đã được thay thế bằng phương pháp .on(). Tuy nhiên, đối với các phiên bản cũ hơn, nó vẫn là phương tiện hiệu quả nhất để sử dụng sự kiện ủy quyền.delegate().

Một giải pháp thay thế khác là .live() nhưng kể từ khi phiên bản 1.7 không còn được dùng nữa. Người dùng các phiên bản cũ hơn của jQuery nên sử dụng .delegate() tùy chọn .live().

Các vấn đề liên quan