jquery函数不工作
我正在用jquery+css3创建手风琴菜单一切正常 希望在页面加载时菜单始终打开,并且代码隐藏它不起作用 这是我创作的小提琴 这是我的jquery代码jquery函数不工作,jquery,css,Jquery,Css,我正在用jquery+css3创建手风琴菜单一切正常 希望在页面加载时菜单始终打开,并且代码隐藏它不起作用 这是我创作的小提琴 这是我的jquery代码 $(document).ready(function() { //ACCORDION BUTTON ACTION (ON CLICK DO THE FOLLOWING) $('.zero_menu_title_collapse').click(function() { //REMOVE THE ON C
$(document).ready(function() {
//ACCORDION BUTTON ACTION (ON CLICK DO THE FOLLOWING)
$('.zero_menu_title_collapse').click(function() {
//REMOVE THE ON CLASS FROM ALL BUTTONS
$('.zero_menu_title_collapse').removeClass('on');
//NO MATTER WHAT WE CLOSE ALL OPEN SLIDES
$('.zero_menu_content').slideUp('normal');
//IF THE NEXT SLIDE WASN'T OPEN THEN OPEN IT
if($(this).next().is(':hidden') == true) {
//ADD THE ON CLASS TO THE BUTTON
$(this).addClass('on');
//OPEN THE SLIDE
$(this).next().slideDown('normal');
}
});
/*** REMOVE IF MOUSEOVER IS NOT REQUIRED ***/
//ADDS THE .OVER CLASS FROM THE STYLESHEET ON MOUSEOVER
$('.').mouseover(function() {
$(this).addClass('over');
//ON MOUSEOUT REMOVE THE OVER CLASS
}).mouseout(function() {
$(this).removeClass('over');
});
/*** END REMOVE IF MOUSEOVER IS NOT REQUIRED ***/
/********************************************************************************************************************
CLOSES ALL S ON PAGE LOAD
********************************************************************************************************************/
$('.zero_menu_content').hide();
});
这是全部小提琴
添加此CSS规则,使您的手风琴内容在默认情况下隐藏:
.zero_menu_content {
display: none;
}
UPD。此版本还将修复代码中的语法错误:
我还删除了$('.zero\u menu\u content').hide()
如果使用CSS解决方案,则不需要它。//在鼠标上方的样式表中添加.OVER类
$('..).mouseover(函数(){
$(this.addClass('over');
//在MOUSEOUT上删除OVER类
}).mouseout(函数(){
$(this.removeClass('over');
});
这将创建一个JS错误,因此$('.zero_菜单_内容').hide()代码>未被激发。
查看控制台。了解如何打开浏览器的JavaScript控制台。我的错误如下:
语法错误,无法识别的表达式:
。。。由此代码触发:
$('.').mouseover(function() {
^^^
不确定代码应该是什么样子,但如果删除整个块,accordion可以正常工作。您也有一个错误
$('.').mouseover(function() {
$(this).addClass('over');
}).mouseout(function() { $(this).removeClass('over'); });
您将在控制台中获得未定义的表达式。。因此代码的执行在此终止。您有以下JavaScript错误:
Uncaught Error: Syntax error, unrecognized expression: .
在移动时:
$('.').mouseover(function() {
$(this).addClass('over');
//ON MOUSEOUT REMOVE THE OVER CLASS
}).mouseout(function() {
$(this).removeClass('over');
});
应该是:
//ADDS THE .OVER CLASS FROM THE STYLESHEET ON MOUSEOVER
$('.zero_menu_content_row').mouseover(function() {
$(this).addClass('over');
//ON MOUSEOUT REMOVE THE OVER CLASS
}).mouseout(function() {
$(this).removeClass('over');
});
正确的小提琴:试试这个
$(document).ready(function() {
/********************************************************************************************************************
CLOSES ALL S ON PAGE LOAD
********************************************************************************************************************/
$('.zero_menu_content').hide();
//ACCORDION BUTTON ACTION (ON CLICK DO THE FOLLOWING)
$('.zero_menu_title_collapse').click(function() {
//REMOVE THE ON CLASS FROM ALL BUTTONS
$('.zero_menu_title_collapse').removeClass('on');
//NO MATTER WHAT WE CLOSE ALL OPEN SLIDES
$('.zero_menu_content').slideUp('normal');
//IF THE NEXT SLIDE WASN'T OPEN THEN OPEN IT
if($(this).next().is(':hidden') == true) {
//ADD THE ON CLASS TO THE BUTTON
$(this).addClass('on');
//OPEN THE SLIDE
$(this).next().slideDown('normal');
}
});
/*** REMOVE IF MOUSEOVER IS NOT REQUIRED ***/
//ADDS THE .OVER CLASS FROM THE STYLESHEET ON MOUSEOVER
$('.').mouseover(function() {
$(this).addClass('over');
//ON MOUSEOUT REMOVE THE OVER CLASS
}).mouseout(function() {
$(this).removeClass('over');
});
/*** END REMOVE IF MOUSEOVER IS NOT REQUIRED ***/
});
我刚把你的藏身处放在
$(document).ready(function(){
});
@dfsq您解决了这个问题,代码中仍然存在一个错误…如果您克服了这个错误,那么您就不需要css检查。请尊重JS语法错误。首先,这仍然是一个解决方法,因为JS代码中仍然存在JavaScript错误。更重要的是,它会使禁用JavaScript的用户无法使用菜单。@MarcinJuraszek 1)。不再有JS错误(找不到404映像,因为OP使用了非工作映像src)。2). 当然,如果JS被禁用,它将不起作用,那么这是我回答的问题吗?@dfsq-我认为他的意思是,对于任何支持CSS但不支持JavaScript的工具来说,内容都是不可见的(例如,在我的老式手机中的Opera Mini)。我明白了。