1

我正在尝试使用 jQuery 切换在两个函数之间移动。迄今为止的结果参差不齐。下面是一个试验场景的完整代码。

<html>
<head>
  <script type="text/javascript" src="../js/jquery.js"></script>
  <script>
  $(document).ready(function(){
     $('#id').on('click',function(event){
         $(this).toggle(
             function(){console.log('Hide');},
             function(){console.log('Show');}
         );
     });
  });
  </script> 
</head>

<body>
  <div id="id">Hello</div>
</body>
</html>

因此,当我第一次单击“Hello”时,日志中没有任何内容。

[Nothing]

在第二次点击时,我得到:

Hide

第三,它补充说:

Show
Hide

第四,它补充说:

Hide
Show
Hide

第五,它补充说:

Show
Hide
Show
Hide

我相信您可以看到模式:) 为什么要这样做?我尝试过.stop(true)但没有用。

谢谢。

4

1 回答 1

4

toggle()在单击时执行,因此您不需要click事件包装器。

$('#id').toggle(
         function(){console.log('Hide');},
         function(){console.log('Show');}
     );

您当前的代码会在第一次单击toggle()该事件时附加触发click,这就是为什么您第一次单击该元素时没有得到任何东西的原因。

于 2012-04-11T02:11:49.953 回答