1

我正在尝试使用一个复选框同时切换具有给定 css 类的多个元素。这看起来像这样:

HTML:

<input type="checkbox" onclick="toggle_class('.subdivision_wraps');" />

JS:

function toggle_class(cssClass) {
  $$(cssClass).each(function(s){
    new Effect.toggle(s, 'blind', { duration: 0.3 });
  });
}

应该工作吧?错误..只有第一个 div 被切换。奇怪的是,如果我使用 BlindDown 一切都按我想要的方式工作(所有 div 同时被蒙蔽)。

难道我做错了什么?我知道我可以使用 BlindDown 和 BlindUp,但我宁愿解决这个切换问题。提前致谢!

4

1 回答 1

1

这似乎是一个奇怪的问题Effect.toggle。如果你给div元素id值,你的代码可以工作:http: //jsbin.com/ifeqek/1如果你不这样做,你会得到你所看到的效果:http: //jsbin.com/ifeqek/3

所以我可能会更新toggle_class为:

function toggle_class(cssClass) {
  $$(cssClass).each(function(s){
    s.identify(); // <======== The new bit, assign an id if there isn't already one
    new Effect.toggle(s, 'blind', { duration: 0.3 });
  });
}

实例| 来源

于 2013-01-09T10:33:05.790 回答