5

私は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 があります。問題なく同じ方法を使用しているように見えるチュートリアルに従っています。何か案は?

4

3 に答える 3

8

メソッドonは jQuery バージョン 1.7 で導入されました。

jQuery ライブラリを最新バージョンにアップグレードする必要があると思います。

それ以外の場合は、次を使用できますbind

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

またはそのショートカット方法click

$('.btnPlay').click(function() {
    // ...
});
于 2012-07-02T23:25:15.997 に答える
1

jQuery 1.7の時点で.delegate()、メソッドに取って代わられました.on()。ただし、以前のバージョンでは、イベントデリゲーション .delegate()を使用することが最も効果的な手段であり続けています。

.live()バージョン 1.7 は廃止されたため、別の代替手段があります。古いバージョンの jQuery のユーザーは、 よりも.delegate()優先して使用する必要があります.live()

于 2014-02-28T13:45:49.637 に答える
0

古いバージョンの JavaScript での .on メソッドの代替は、.delegate です。.delegate('.btnPlay', 'click', function(){...})同じ機能を持たせるには、親要素で使用する必要があります

于 2012-07-02T23:27:57.790 に答える