我有一个jquery脚本,如果你使用mouseenter和element,那么会显示一些内容,并在你mouseleave时消失。我正在尝试在用户点击时取消绑定鼠标,以便在用户离开时“某事”保持显示状态。这是正确的方法吗?如果是这样,有人可以帮助我让这个脚本工作吗?
谢谢!
$('.block').live("mouseenter",function(){
var id= $(this).attr('id');
$('#arrowPreview'+id).show();
}).live("mouseleave",function(){
var id= $(this).attr('id');
$('#arrowPreview'+id).hide();
}).live("click",function(){
var id= $(this).attr('id');
$('#arrowPreview'+id).show();
$(this).unbind("mouseleave");
});
谢谢!
答案 0 :(得分:2)
您需要创建在事件上执行的函数作为变量,以确保您的javascript的完整性,以便您的示例:
var fShow = function(){
var id= $(this).attr('id');
$('#arrowPreview'+id).show();
};
var fHide = function(){
var id= $(this).attr('id');
$('#arrowPreview'+id).hide();
};
var fClick = function(){
var id= $(this).attr('id');
$('#arrowPreview'+id).show();
};
$('.block').bind('mouseenter',fShow);
$('.block').bind('mouseleave',fHide);
$('.block').unbind('mouseleave',fHide);
答案 1 :(得分:1)
所以我不认为你想要的是完全可能的。问题似乎是使用.live
和解除绑定。您可以使用.die
取消绑定mouseleave事件。但是,在您的情况.block
中,使用的选择器必须与最初用于绑定事件的选择器匹配。我觉得这显然很糟糕。 .die的示例小提琴
我认为你需要使用显式选择器绑定当前元素,所以可能使用.each
和你的选择器然后用$(this)绑定。这应该允许死亡工作。我会弄乱这个小提琴,看看它是否属实。
答案 2 :(得分:0)