1

特定の css-class を持つ複数の要素を、1 つのチェックボックスで同時に切り替えようとしています。これは次のようになります。

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 に答える