我在数组中有一组按钮,我想要它,这样当你点击一个,并且链接到的视频开始播放时,它会将click
解除绑定到按钮(理想情况下为你刚才点击的那个,但我甚至无法让它为li
工作。我有它
$("#myVid").bind("playing", function() {
//some stuff that happens
$("li", ".thumbs").unbind('playVideo()')
});
但它不起作用......我在这里做错了什么? (playVideo()
是一个已经定义的函数)
更具体一点:
unbind
在玩,.bind("playing", function()...
。我可以让它停用列表,但它应该在它之前......
答案 0 :(得分:1)
你看过.unbind()
doco了吗?您必须传递要解除绑定的事件的名称(尽管存在允许您传递事件对象的重载)。尝试:
$("li", ".thumbs").unbind('click');
您可以选择将对特定处理程序的引用传递给unbind:
$("li", ".thumbs").unbind('click',playVideo);
如果您绑定多个处理程序并且只想取消绑定特定处理程序,则后者是必需的。
(如果您使用的是jQuery 1.7或更高版本,我建议改用.off()
method。)
答案 1 :(得分:1)
如果您创建了这样的事件:
$("li", ".thumbs").bind("click", playVideo);
相反的行动是这样做:
$("li", ".thumbs").unbind("click", playVideo);
用于绑定click事件的相同函数必须用于删除同一事件。
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);
});