$(“。class”)。on不是函数--jQuery错误

时间:2012-07-02 23:23:52

标签: jquery html5 video

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

3 个答案:

答案 0 :(得分:8)

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

我认为你必须将你的jQuery库升级到newest version

否则,您可以使用bind

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

或其快捷方式click

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

答案 1 :(得分:1)

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

另一种选择是.live(),但是因为1.7版已被弃用。旧版jQuery的用户应优先使用.delegate() {。{1}}。

答案 2 :(得分:0)

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