JQuery の .toggle がとんでもないことに

もうすでに大騒がれてたりすんだろな。浦島ててすまん。

これ:

 1 $(document).ready(function() {
 2     $('.mynanika').toggle(
 3         function() {
 4           /* 奇数回目クリック時処理 */
 5         },
 6         function() {
 7           /* 偶数回目クリック時処理 */
 8         }
 9       );
10 });

古い jquery 紹介なんかではまず間違いなく「オススメデッス」的に紹介されてんでねーのかな、って思う。楽チンではあるしね。

だー:

あのなぁ、deprecated なだけなら別に困らんのよ、「全く違うことをする同名のもの」で上書きしたらいかんて。。。という文句を書こうとしたが、なんか違うみたいだな。「Display or hide the matched elements」が本来の toggle で、こちらが不適切なオーバロードだったから消したぜ、てことか?

まぁ「不適切だったほうの toggle」は、元々こう書けるもんであるしね:

 1 $(document).ready(function() {
 2     var cc = true;
 3     $('.mynanika').on("click",
 4         function() {
 5             if (cc) {
 6               /* 奇数回目クリック時処理 */
 7             } else {
 8               /* 偶数回目クリック時処理 */
 9             }
10             cc = !cc;
11         });
12 });

騙されたワタシが悪かった、と言いたいところだけれど、問題起こしたコードは元はといえば人様が書いたもんであるからさ、元の作者も困ったか絶賛困り中なのかもしれん。