+ -
当前位置:首页 → 问答吧 → jquery中toggle的执行问题

jquery中toggle的执行问题

时间:2010-02-03

来源:互联网

// 收缩展开效果
$(document).ready(function(){
      //单击MenuToggle元素事件
      $(".MenuToggle").click(function(){
        //找到需要隐藏的图层,交替显示和隐藏------1
        $(".Menu div").toggle();
        //替换MenuToggle下的IMG图片------------2
        $(".MenuToggle img").toggle(
        function () {
        $(this).attr("src","Style/IMG/menu-showbtn.gif");
        },
        function () {
        $(this).attr("src","Style/IMG/menu-hiddenbtn.gif");
        });
      });
});

代码段1和代码段2只能有一个被执行,我想两都执行。怎么办

作者: didostream   发布时间: 2010-02-03

$(".Menu div,.MenuToggle img").toggle(
        function () {
.....
})

作者: cynial   发布时间: 2010-02-03

你肯定哪出错了,不然不会不执行的

作者: ywqbestever   发布时间: 2010-02-03

不对啊,我Menu div,和.MenuToggle img是分开的,Menu div是想要显示隐藏,MenuToggle img是替换图片
所以不能按照你说的做

作者: didostream   发布时间: 2010-02-03

没有错误

作者: didostream   发布时间: 2010-02-03

这样写吧
复制代码
  1. <script type="text/javascript">
  2.     //<![CDATA[
  3.      $(document).ready(function(){
  4.       $(".MenuToggle").click(function(){
  5.         $(".MenuToggle img").toggle(
  6.             function () {
  7.             $(this).attr("src","Style/IMG/menu-showbtn.gif");
  8.             $(".Menu div").toggle();
  9.         },
  10.         function () {
  11.             $(this).attr("src","Style/IMG/menu-hiddenbtn.gif");
  12.             $(".Menu div").toggle();
  13.         });
  14.       });
  15. });
  16.     //]]>
  17. </script>

作者: ywqbestever   发布时间: 2010-02-03

toggle有两种作用:
toggle()
切换元素的可见状态。
如果元素是可见的,切换为隐藏的;如果元素是隐藏的,切换为可见的。

toggle(fn,fn)
每次点击时切换要调用的函数。
如果点击了一个匹配的元素,则触发指定的第一个函数,当再次点击同一元素时,则触发指定的第二个函数。随后的每次点击都重复对这两个函数的轮番调用。
可以使用unbind("click")来删除。

我两个都用
代码一是用的第一种
代码二是用的第二种
我的代码又精简了下:
// 收缩展开效果
$(document).ready(function(){
      //单击MenuToggle元素事件
      $("XXX").click(function(){
        //找到需要隐藏的图层,交替显示和隐藏------1
        $("YYYY").toggle();
        //替换MenuToggle下的IMG图片------------2
        $("ZZZZ").toggle(
            function () {
            $(this).attr("src","showbtn.gif");
            },
            function () {
            $(this).attr("src","hiddenbtn.gif");
            });
      });
});

作者: didostream   发布时间: 2010-02-04

我想问的是:为什么不能两中用户都用?

作者: didostream   发布时间: 2010-02-04