Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript/jQuery取消另一个函数中的函数_Javascript_Jquery_Html - Fatal编程技术网

Javascript/jQuery取消另一个函数中的函数

Javascript/jQuery取消另一个函数中的函数,javascript,jquery,html,Javascript,Jquery,Html,我有一个悬停的函数,它显示列表项旁边的图像。那很好。但是,我需要有它,这样当用户点击链接时,图像就会留在那里。从现在开始,当用户点击链接时,悬停功能仍然有效,并且只有当链接被悬停在上面时,图像才会显示 $('[href]')。悬停(函数(){ $(this).closest('li').prev('li').removeClass('hidden'); },函数(){ $(this).closest('li').prev('li').addClass('hidden'); }); $('[hr

我有一个悬停的函数,它显示列表项旁边的图像。那很好。但是,我需要有它,这样当用户点击链接时,图像就会留在那里。从现在开始,当用户点击链接时,悬停功能仍然有效,并且只有当链接被悬停在上面时,图像才会显示

$('[href]')。悬停(函数(){
$(this).closest('li').prev('li').removeClass('hidden');
},函数(){
$(this).closest('li').prev('li').addClass('hidden');
});
$('[href]')。单击(函数(ev){
ev.preventDefault();
$(this).closest('li').prev('li').removeClass('hidden');
});
ul,li{
列表样式:无;
显示:内联块;
}
.隐藏{
可见性:隐藏;
}


之所以会发生这种情况,是因为悬停覆盖了单击。我创建此解决方案,以便在单击链接时图像保持可见:

var clickHref=false;
$('[href]')。悬停(函数(){
$(this).closest('li').prev('li').removeClass('hidden');
},函数(){
如果(!clickHref)
$(this).closest('li').prev('li').addClass('hidden');
});
$('[href]')。单击(函数(ev){
ev.preventDefault();
$(this).closest('li').prev('li').removeClass('hidden');
clickHref=!clickHref;
});
ul,
李{
列表样式:无;
显示:内联块;
}
.隐藏{
可见性:隐藏;
}


可能off方法适合您的需要:

$('[href]').click(function(ev) {
  ev.preventDefault();

  $(this).off("mouseenter mouseleave").closest('li').prev('li').removeClass('hidden');
});