jQuery onclick issues
jQuery onclick issues
不确定onclick
部分是否工作,基本上它是一个.hover & .onclick
按钮,你可以将鼠标悬停在它上面打开菜单,你可以点击打开和关闭它,如果它已经打开了,那么它就关闭了。
但是我的代码不做onclick位。只有悬停似乎有效。
var GN_SELECTED = 'gn-selected';
var GN_OPEN_ALL = 'gn-open-all';
var menuIcon = $("#menuicon");
var menuWrapper = $("#menuwrapper");
menuIcon.click(function() {
menuIcon.addClass(GN_SELECTED);
menuWrapper.addClass(GN_OPEN_ALL);
});
$("#menuicon, #menuwrapper, .gn-menu, .gn-scrollbar").hover(function() {
menuIcon.addClass(GN_SELECTED);
menuWrapper.addClass(GN_OPEN_ALL);
}, function() {
menuIcon.removeClass(GN_SELECTED);
menuWrapper.removeClass(GN_OPEN_ALL);
});
如果应用了两个类gn-selected和gn-open-all,它使用响应式CSS来打开菜单。
当鼠标悬停但不点击时,它工作得很好,如果它已经打开(从悬停在它上面),然后点击它应该关闭它,但它似乎没有做任何事情。
现在是凌晨3:36,我累了,谁能指出我明显的错误?
编辑:我试着稍微复制一下悬停代码,然后这样做:
var GN_SELECTED = 'gn-selected';
var GN_OPEN_ALL = 'gn-open-all';
var menuIcon = $("#menuicon");
var menuWrapper = $("#menuwrapper");
menuIcon.click(function(){
menuIcon.addClass(GN_SELECTED);
menuWrapper.addClass(GN_OPEN_ALL);
}, function(){
menuIcon.removeClass(GN_SELECTED);
menuWrapper.removeClass(GN_OPEN_ALL);
});
$("#menuicon, #menuwrapper, .gn-menu, .gn-scrollbar").hover(function(){
menuIcon.addClass(GN_SELECTED);
menuWrapper.addClass(GN_OPEN_ALL);
}, function(){
menuIcon.removeClass(GN_SELECTED);
menuWrapper.removeClass(GN_OPEN_ALL);
});
但是它仍然不能正常工作,但这次它做了一些事情。当你将鼠标悬停在它上面并单击它时,它会隐藏菜单,但是重新单击它不会显示菜单。
如果我尝试点击它在手机上,所以悬停不激活它不做任何事情,但如果我交换删除和添加类,所以它删除类,然后在函数()位添加它们后,它的工作很好。真的很困惑。
任何想法?
好吧,在您的第一个代码片段中,没有在您的click
处理程序设置为删除gn-selected
类;它只是添加类。因此,当然,除非您在click处理程序中添加删除类的代码,否则单击元素永远不会删除该类。
你的第二个片段也是不正确的。您不能将两个回调传递给click
处理程序。当你对hover
这样做时,它实际上是mouseenter
/mouseleave
的简写。click
就是click
,仅此而已。你只能通过一个回调。
使用toggleClass()
可以极大地简化整个函数。只需在鼠标上切换这个类单击,并在鼠标左键上删除它。这并不完全适用于您,因为您正在使用其他元素来触发状态(我们不知道这实际上应该是什么样子,因为我们没有html/css),但它至少应该指向正确的方向:
$('#menuicon').on('click mouseenter', function() {
$(this).toggleClass('gn-selected');
$('#menuwrapper').toggleClass('gn-open-all');
}).on('mouseleave', function() {
$(this).removeClass('gn-selected');
$('#menuwrapper').removeClass('gn-open-all');
});
- 如何在执行此特定onclick事件时执行JavaScript函数
- Setting default onclick behavior for <img> tag in gene
- Javascript全局onclick监听器
- 如何调用“;链接_;在onclick事件上使用Javascript
- onclick函数需要双击,因为类分配延迟
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 使用onclick绘制SVG路径
- 如何将数据从onclick按钮传递到变量
- 选择onclick事件jquery
- I'我设计了一个下拉菜单,onclick会出现,而on blur会消失
- 如何刷新列表框内容onclick或blur事件
- OnClick/Onhover Javascript/jquery
- 执行php函数的onclick事件的其他替代方案
- Javascript onclick函数会立即调用(而不是在单击时调用)
- 动态创建OnClick事件Javascript
- onclick风格的整个李不想要
- jquery Onclick函数带有导致双击的回调排序函数
- 使用element简化onclick函数
- wordpress a tag onClick issues
- jQuery onclick issues