$( ".class" ).on 不是一个函数 - jQuery error



我是Javascript/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 类。我正在遵循一个教程,该教程似乎使用相同的方法,没有任何问题。有什么想法吗?

方法on是在jQuery版本1.7中引入的。

我认为你必须将你的jQuery库升级到最新版本。

否则,您可以使用bind

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

或其快捷方法click

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

jQuery 1.7 开始,.delegate()已被 .on() 方法取代。但是,对于早期版本,它仍然是使用事件委派的最有效方法.delegate()

另一种选择是.live(),但自 1.7 版以来已弃用。旧版本的jQuery的用户应该优先使用.delegate()而不是.live()

旧版本的 javascript 上 .on 方法的替代方法是 .delegate。您应该在父元素上使用.delegate('.btnPlay', 'click', function(){...})以具有相同的功能