0

我在一个数组中有一组按钮,我想要它,这样当您单击一个按钮时,它所链接的视频开始播放,它会解除与click按钮的绑定(理想情况下仅适用于您刚刚单击的按钮,但我甚至不能让它为li) 工作。我有它作为

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

但它不工作......我在这里做错了什么?( playVideo()是一个已经定义的函数)

更具体地说:
问题是它应该unbind只在视频播放时播放,因此.bind("playing", function().... 我可以让它停用列表,但它应该在它之前......

4

2 回答 2

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 回答
1

你看过.unbind()doco吗?您必须传递要取消绑定的事件的名称(尽管有一个允许您传递事件对象的重载)。尝试:

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

您可以选择传递对特定处理程序的引用以取消绑定:

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

如果您要绑定多个处理程序并且只想取消绑定特定的处理程序,则后者是必要的。

(如果您使用的是 jQuery 1.7 或更高版本,我建议您改用该.off()方法。)

于 2012-05-24T03:53:46.363 回答