我正在尝试使用单个复选框同时切换具有给定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,但我宁愿解决这个切换问题。提前谢谢!
答案 0 :(得分: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 });
});
}