动画不起作用后单击JQuery
JQuery click after animate not working
当我第一次单击#menuIcon
div时,我希望它为#menu
div left: 0em
设置动画,然后当我第二次单击它时,为#menu
到left: -12em
设置动画。
第一部分工作,但当我再次点击时,什么都没有发生。#menuIcon
是#menu
的孩子,这会影响什么吗?
这是我的JS(根据这个问题改编,微查询插件的答案(:
$(document).ready(function(){
jQuery.fn.clickToggle = function(a,b) {
function cb(){
[b,a][this._tog^=1].call(this);
}
return this.on("click", cb);
};
$("#menuIcon").clickToggle(function() {
$("#menu").animate({left: "0em"}, 500);
}, function() {
$("#menu").animate({left: "-12em"}, 500);
});
});
提前谢谢。
正如John S所建议的,以下是相关的(我认为(html:
<div id="menu">
<div id="menuIcon">
<div id="menuIcon1"></div>
<div id="menuIcon2"></div>
<div id="menuIcon3"></div>
</div>
</div>
和css:
#menu {
width: 16em;
height: calc(100% - 5em);
background-color: blue;
position: fixed;
bottom: 0;
left: -12em;
}
#menuIcon {
height: 4em;
width: 4em;
position: relative;
top: 0;
left: 12em;
background-color: green;
}
只需使用添加的类来切换方向可能会更容易:
$("#menuIcon").on("click", function() {
$this = $(this)
if(!$this.hasClass("open"))
{
$("#menu").animate({left: "0em"}, 500);
$this.addClass("open");
}
else
{
$("#menu").animate({left: "-12em"}, 500);
$this.removeClass("open");
}
})
这并不像你尝试的那样聪明,但我认为它更容易阅读,应该可以在
$('#menuIcon').toggle(
function(){
$("#menu").animate({left: "0em"}, 500);
} ,
function(){
$("#menu").animate({left: "-12em"}, 500);
}
);
使用Jquery切换函数,它将为您带来神奇的效果。感谢
正如John S所说,我的问题不在于jQuery,而在于HTML的其余部分。
打开时,我有一个带有重叠#菜单的div。我将#menu的z索引设置为2,这就起作用了。
相关文章:
- jquery单击隐藏的复选框
- jQuery单击隐藏其父元素
- 水平滚动不适用于jquery单击
- jQuery单击事件在一次之后不会触发
- Jquery单击按钮上没有类或id的事件
- 将JQuery单击事件直接指向同一元素的两个
- 如何通过使用jQuery单击该DIV来获取children DIV类名
- 使用 jQuery 单击链接时更改链接背景颜色
- JQuery:单击范围标签时切换日期选择器
- 如何使用jQuery单击其缩略图时显示主图像
- JQuery单击“选择子图像”
- 使用jQuery单击锚后,更改锚的文本
- jQuery单击并显示元素列表
- JQuery:单击具有特定URL的嵌套Img
- Jquery单击“选中最近的复选框”
- Jquery单击按钮时不显示警告框
- 突出显示iframe内的文本,同时使用jquery单击文档上的相同文本
- 无法识别JQuery单击事件
- jquery单击链接并获取单选输入值以更改span中的文本
- 使用jquery单击事件淡入隐藏文本