我想使用jQuery Sub OpenCustomerData()
Workbooks.Open Filename:=Sheets("Individual").Range("customer_id").Value
End Sub
函数在单击元素(toggle()
)时从左侧滑动屏幕外div(#mobileNav
),然后单击元素再次单击,div再次滑出屏幕。我点击了滑动工作,但触发元素被隐藏 - 标签中注入#mobileMenu
- 这使得无法再次点击将div滑回。这是相关的代码:
display: none
$(document).ready(function(){
$('#mobileMenu').click(function() {
$("#mobileMenu").toggle(function() {
$('#mobileNav', this).animate({left: '0' });
}, function() {
$("#mobileNav", this).animate({left: '-380px'});
});
});
});
最初设置为#mobileNav
。
left: -380px
答案可能会使用范围界定,但我似乎无法理解它是如何运作的。
一如既往 - 感谢任何和所有的帮助 - 乔
答案 0 :(得分:2)
问题是因为toggle()
方法不再以您期望的方式运行。功能之间的切换'签名是deprecated in 1.8 and removed in 1.9。
相反,您需要自己处理行为的变化。在这种情况下,通过检查元素的当前left
位置:
$('#mobileMenu').click(function() {
$(this).toggle(function() {
var leftPos = parseInt($(this).css('left'), 10) == 0 ? '-380px' : 0;
$('#mobileNav').animate({ left: leftPos });
});
});
或者,最好,您可以在CSS中执行动画,只需使用toggleClass
来触发它:
#mobileNav {
left: 0;
transition: left 0.5s;
}
#mobileNav.open {
left: -380px;
}
$('#mobileMenu').click(function() {
$('#mobileNav').toggleClass('open');
});
最后,请注意您使用上下文id
选择器($("#mobileNav", this)
)是多余的,因为id属性在文档中应该是唯一的,因此上下文选择器没有实际意义。