问:我想在进入和离开鼠标时更改图像。但是单击后图像应保留在该位置。我有一个图像属性源,该属性在鼠标进入和鼠标离开事件时被替换。但是单击后图像也会改变。单击图像后,我需要mouseleave事件停止工作。这是下面的代码:
<脚本>
$ ('.imgContainer' )。mouseenter (function (){
$ ('.imgContainer' )。attr ('src' ,'http://url-to-my-active-image.jpg' );
} ),
$ ('.imgContainer' )。mouseleave (function (){
$ ('.imgContainer' )。attr ('src' ,'http://url-to-my-inactive-image.jpg' );
} ),
$ ('.imgContainer' )。点击(function (){
$ ('.imgContainer' )。css ('opacity' ,'1' );
} );
</脚本>
答:在更改图像源之前,必须设置全局布尔变量Flag。像这样:
$(document).ready(function(){
var flag = true;
$('。imgContainer')。mouseenter(function(){
如果(标志){
$('。imgContainer')。attr('src','img1.gif');
}
}),
$('。imgContainer')。mouseleave(function(){
如果(标志){
$('。imgContainer')。attr('src','img2.gif');
}
}),
$('。imgContainer')。click(function(){
标志=假;
}); });
答:我们可以使用以下几行使click上的mouseenter和mouseleave保持无效:
$('。imgContainer')。click(function(){
$(this).off('mouseenter')。off('mouseleave');
});
这将帮助您解决问题。希望这会帮助你。谢谢
答:在click函数调用上,将imgcontainer中的mouseleave事件解除绑定,如下所示:
$('。imgContainer')。click(function(){
$('。imgContainer')。css('opacity','1');
$('。imgContainer')。unbind('mouseleave');
});