这个jquery代码有点问题: 如果我直接调用openMenu函数,它可以正常工作,但如果不调用它。
$(document).ready(function() {
function checkMenu() {
if($(this).find('ul').css('display') == 'none') {
openMenu();
} else {
closeMenu();
}
}
function openMenu() {
$(this).find('ul').css({display: "block"});
}
function closeMenu() {
$(this).find('ul').css({display: "none"});
}
$('ul li:has(ul)').click(checkMenu);
});
答案 0 :(得分:3)
您可以轻松自己并使用toggle()
$('ul li:has(ul)').click(function(){
$(this).find('ul').toggle();
});
答案 1 :(得分:2)
为什么不使用.toggle()?如:
$(this).find('ul').toggle();
您也可以使用慢速,普通,快速设置切换速度:
$(this).find('ul').toggle('fast');
答案 2 :(得分:1)
openMenu不知道“this”指的是什么。这应该有用......
$(document).ready(function() {
function checkMenu() {
var me = $(this);
if(me.find('ul').css('display') == 'none') {
openMenu(me);
} else {
closeMenu(me);
}
}
function openMenu(me) {
//this isn't defined..
me.find('ul').css({
display: "block"
});
}
function closeMenu(me) {
me.find('ul').css({
display: "none"
});
}
$('ul li:has(ul)').click(checkMenu);
});
但其他人都是对的。切换功能对于这样的事情非常有用。