我是jquery的新手,我正在尝试使用下拉菜单中的.slidedown函数。我希望菜单在单击时打开,并在再次单击选项或菜单时关闭。但是,当菜单按原样单击时,它只是弹出打开和关闭,而不是保持打开。代码如下:
*(function($) {
/* $('#drop').click(function() {
if (paneldown == false) {
$('#ddd').slideUp(5000);
paneldown = false;
}
if(paneldown != false) {
$('#ddd').slideDown(5000);
paneldown = true;
}
});
*/
var paneldown = false;
$('#drop').click(function() {
if(paneldown == false) { $('#ddd').slideDown(500); paneldown = true; }
if(paneldown == true) { $('#ddd').slideUp(500); paneldown = false;}
//$('#ddd').toggle(5000), (function() {
// });
});
})(jQuery);
// JavaScript Document*发布于 2011-09-22 07:04:07
如果您仍然希望使用If语句,请执行以下操作:
var paneldown = false;
$('#drop').click(function () {
if (paneldown == false) {
$('#ddd').slideDown(500);
paneldown = true;
} else {
$('#ddd').slideUp(500);
paneldown = false;
}
});如果你尝试使用两个if,这将不会起作用,但我不建议在这种情况下使用if。使用:
$('#drop').click(function() {
$('#ddd').slideToggle(500);
});发布于 2011-09-05 17:24:24
请改用slideToggle:
$('#drop').click(function() {
$('#ddd').slideToggle(500);
});它会为您处理状态,因此您无需担心。现有代码的问题是,首先运行slideDown,并将paneldown设置为true。然后,在您检查是否为paneldown == true (它就是这样;您只需这样设置它)之后,它立即运行slideUp。
发布于 2011-09-05 17:24:20
如果你想使用下面的语句,你就不能处理if语句:
$('#drop').click(function() {
$('#ddd').slideToggle(500);
});顺便说一句,由于使用了两个if语句,您的菜单只是在向上滑动。在第一种情况下,"paneldown“是"false”。菜单向下滑动。现在您正在将"paneldown“设置为"true”。现在你有了第二个if语句,"paneldown“现在是"true”,所以它向上滑动。如果你想保留If语句,你应该使用if -else-struction.
$('#drop').click(function() {
if (paneldown == false) {
$('#ddd').slideUp(5000);
paneldown = false;
}
else {
$('#ddd').slideDown(5000);
paneldown = true;
}
});https://stackoverflow.com/questions/7306100
复制相似问题