0

配列内に一連のボタンがあり、ボタンをクリックすると、リンク先のビデオの再生が開始されるようにしたいと思いclickます(理想的には、クリックしたばかりのボタンの場合のみですが、のためにそれを動作させることさえできませんli)。私はそれを持っています

$("#myVid").bind("playing", function() {
  //some stuff that happens
  $("li", ".thumbs").unbind('playVideo()')
        });

しかし、それは機能していません...私はここで何が間違っているのですか?( playVideo()はすでに定義されている関数です)

より具体的に
言うと、問題はunbind、ビデオの再生が1回だけであることになっているため、.bind("playing", function()...。リストを非アクティブ化することはできますが、その前に...

4

2 に答える 2

1

.unbind()ドコを見ましたか?バインドを解除するイベントの名前を渡す必要があります(ただし、イベントオブジェクトを渡すことができるオーバーロードがあります)。試す:

$("li", ".thumbs").unbind('click');

オプションで、特定のハンドラーへの参照を渡してバインドを解除できます。

$("li", ".thumbs").unbind('click',playVideo);

後者は、複数のハンドラーをバインドしていて、特定のハンドラーのバインドを解除したい場合に必要です。

(jQueryバージョン1.7以降を使用している場合は、代わりにこの.off()メソッドを使用することをお勧めします。)

于 2012-05-24T03:53:46.363 に答える
1

このようにイベントを作成した場合:

$("li", ".thumbs").bind("click", playVideo);

反対のアクションはこれを行うことです:

$("li", ".thumbs").unbind("click", playVideo);

クリックイベントのバインドに使用したのと同じ関数を使用して、同じイベントを削除する必要があります。

function click() {
    $("#myVid").bind("loadeddata", function() {
    $("#bigPic").addClass("move");
    $("#MyT").fadeOut(750);
            });
    playVideo( $(this).index() );
}

$('li', '.thumbs').bind('touchend click', click);

$("#myVid").bind("playing", function() {
    $('li', '.thumbs').unbind('touchend click', click);
});
于 2012-05-24T03:58:28.720 に答える