Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.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 什么';最好的方法是:在mouseenter/mouseleave上显示/隐藏菜单,并用按钮切换可见性?_Javascript_Jquery_Events - Fatal编程技术网

Javascript 什么';最好的方法是:在mouseenter/mouseleave上显示/隐藏菜单,并用按钮切换可见性?

Javascript 什么';最好的方法是:在mouseenter/mouseleave上显示/隐藏菜单,并用按钮切换可见性?,javascript,jquery,events,Javascript,Jquery,Events,这有点理论性。该菜单在mouseenter/mouseleave上显示/隐藏,并带有一个切换按钮,可在用户感到烦人时删除此功能。在我的示例中,我有一个触发切换的元素,只是显示它,而不是实际切换它,但我真正想知道的是,做这样的事情的最佳方式是什么 有更好的方法吗?自定义jQuery事件?使用.data()?它能更先进(愚蠢吗?)?更简单?好处,陷阱?概念上都是正确的。详情如下: 最重要的是,在运行另一个动画之前,您需要修改动画,因为用户可以在菜单设置动画时执行鼠标悬停,从而导致混乱 var men

这有点理论性。该菜单在mouseenter/mouseleave上显示/隐藏,并带有一个切换按钮,可在用户感到烦人时删除此功能。在我的示例中,我有一个触发切换的元素,只是显示它,而不是实际切换它,但我真正想知道的是,做这样的事情的最佳方式是什么


有更好的方法吗?自定义jQuery事件?使用
.data()
?它能更先进(愚蠢吗?)?更简单?好处,陷阱?

概念上都是正确的。详情如下:

最重要的是,在运行另一个动画之前,您需要修改动画,因为用户可以在菜单设置动画时执行鼠标悬停,从而导致混乱

var menuWrapper = $('#menuWrapper'),
    menu = $('#menu');

var toggleFade = function (toggle) {
    menu.stop(true, true);
    toggle ? menu.fadeIn() : menu.fadeOut();
};

menuWrapper.bind('mouseenter', function () {
    toggleFade(true);
}).bind('mouseleave', function () {
    toggleFade(false);
});


$('#showMenu').click(function () {
    toggleFade(true);
    menuWrapper.unbind('mouseenter').unbind('mouseleave');
});