我的切换函数有问题。我有一个简单的div,当使用.toggle
单击时,它会上下移动。为了让页面更容易使用,我希望用户能够点击屏幕上的任何地方,以便"关闭"将div向下移动,而无需再次点击蓝色框(有点像在大型下拉菜单上(。
问题是我的.click
函数混淆了切换,一旦.click
而不是.toggle
的第二个函数关闭了蓝色div,就需要单击.toggle
两次才能再次打开它。我做错了什么?
我已经搜索了.toggle
的其他相关问题,并双击此处,但没有找到类似的主题
我试过一些.addClass
和.hasClass
的东西,但似乎不起作用。
这里还有我的jQuery:
$(document).ready(function(){
$(document).click(function() {
if($("#banner").hasClass("open")){
$("#banner").removeClass("open").stop().animate({top:"350px"},350, 'swing')
}});
$("#banner").toggle(
function () {
$(this).addClass("open").animate({top:"200px"},350, 'swing')
},
function () {
$(this).removeClass("open").animate({top:"350px"},350, 'swing')
});
});
为什么不将toggle
更改为click
:
$("#banner").click(function(e) {
e.stopPropagation();
if ($("#banner").hasClass("open")) {
$("#banner").removeClass("open").animate({
top: "350px"
}, 350, 'swing')
}
else {
$(this).addClass("open").animate({
top: "200px"
}, 350, 'swing');
}
});