今天遇到一个有趣的例子,将它记录下来。
一个一级菜单,里边有一个二级菜单,二级菜单是通过锚点来链接页面元素的。想要实现的效果是当点击锚点时,页面链接到相应锚点,同时二级菜单隐藏,再点击一级菜单时,继续执行。。
其中试了很多种方法都不行,最后通过读jquery的toggle函数实现了。
//这样写可以 $(".nav").toggle(function(){ $(".content").slideToggle(); }); //这样写不可以 $(".nav").toggle(function(){ $(".content").slideDown(); },function(){ $(".content").slideUp(); }); //这样写也可以 $(".nav").click(function(){ $(".content").toggle("slow"); });
另附上toggle()的使用说明
toggle(fn,fn)
每次点击时切换要调用的函数。
如果点击了一个匹配的元素,则触发指定的第一个函数,当再次点击同一元素时,则触发指定的第二个函数。随后的每次点击都重复对这两个函数的轮番调用。
可以使用unbind("click")来删除。
返回值
jQuery
参数
fn (Function) : 第奇数次点击时要执行的函数。
fn (Function) : 第偶数次点击时要执行的函数。
示例
对表格的切换一个类
jQuery 代码:
$("td").toggle( function () { $(this).addClass("selected"); }, function () { $(this).removeClass("selected"); } );
补充:toggle只有点击的时候好使,hover只是鼠标移进移出的事件,跟点击没关系。两个可以一起用