我们假设我有一个.description
类的div。
当用户使用div.description
类悬停在另一个div上时,我希望显示.image
。
但是,当用户点击div.image
时,我希望div.description
保持可见状态。因此,如果用户点击.image
,则不应该应用mouseleave
事件。
最后,当用户再次点击.image
时,应再次激活悬停功能。因此,当鼠标离开.image1
时,div.description
将再次隐藏。
希望你们能帮助我!
答案 0 :(得分:6)
var cancel = false;
$(".another").hover(function(){
$("div.description").show();
},function(){
if(!cancel)
$("div.description").hide();
});
$(".image").click(function(){
cancel = (cancel)?false: true;
});
答案 1 :(得分:1)
你可以尝试这样的事情:http://jqversion.com/#!/CCvqpwh
$('.image').bind('mouseenter', function(){
$('.description').show();
}).bind('mouseleave', function(){
$('.description').hide();
}).click(function(){
if (!$(this).hasClass('clicked')){
$(this).addClass('clicked');
$(this).unbind('mouseleave');
} else {
$(this).removeClass('clicked');
$(this).bind('mouseleave', function(){
$('.description').hide();
})
}
});
答案 2 :(得分:0)
您可以将两个事件绑定到相同的元素,如bellow。并使用单独的函数来获得您想要的内容
var myFunction1 = function() {
$('div.description').show();
}
var myFunction2 = function() {
// do whatever you want
}
$('div.image')
.click(myFunction1)
.mouseover(myFunction2)
答案 3 :(得分:0)
使用此脚本
jQuery(document).ready(function() {
jQuery('.overlay').hide();
});
jQuery(document).ready(function() {
jQuery('.element, .element-1').hover(function() {
jQuery('.overlay').show();
},
function() {
jQuery('.overlay').hide();
});
});