引用操作:
“我究竟做错了什么?”
根据jQuery 文档,您的语法是错误的。内部不能有两个回调函数toggle()
。
.toggle([持续时间] [,缓动] [,回调])
- duration - 一个字符串或数字,确定动画将运行多长时间。
- easing - 一个字符串,指示用于过渡的缓动函数。
- callback - 动画完成后调用的函数。
编辑:
阅读其他答案后,我看到还有另一个版本的 jQuerytoggle()
...
http://api.jquery.com/toggle-event/
.toggle(处理程序(事件对象),处理程序(事件对象)[,处理程序(事件对象)])
- handler(eventObject) - 每次点击元素时执行的函数。
- handler(eventObject) - 每次单击元素时执行的函数。
- handler(eventObject) - 点击后要循环的其他处理程序。
正确实施,您的 jQuery 应该看起来像这样......
$(document).ready(function() {
$("#navSliderArrow").toggle(
function() {
$(this).animate({ marginLeft: '235' }, 500);
$("#sliderArrow").attr("src", "images/hide_nav.gif");
},
function() {
$(this).animate({ marginLeft: '0' }, 500);
$("#sliderArrow").attr("src", "images/show_nav.gif");
}
);
});
有了 jQuery,就完全不需要像<a href="#" onclick="togglethis()">
. 您的 HTML 应该类似于...
<a href="#" id="navSliderArrow">
我只说“类似”,因为您的 HTML 不包含在您的 OP 中,而且我不知道您的目标元素应该是什么。
jsFiddle 演示