fc2ブログ
2010/07/09(Fri)  00:43





わお。広告出てしまってました・・・wあまり良くないので、更新っとっとっと!!w


なにか面白いネタありませんかー!!





ネタが無いと言うことで、私が大好きなJavaScript(jQuery)ネタでも書きますよー(`・ω・`)ノ















jQueryを使ったイベント設定で、「クリックしたら、リンクさせる。」 と言う処理をしたい場合、

$("#test").click(function(){
     location.href="URL";
});

としますがー。



他の要素も設定したい場合、

$("#test").click(function(){
     location.href="URL";
});
$("#test2").click(function(){
     location.href="URL2";
});
$("#test3").click(function(){
     location.href="URL3";
});
$("#test4").click(function(){
     location.href="URL4";
});



と書くのはとても見栄えが悪いですし、効率も悪いです。

そこで私が考えたのは、「配列を使って設定しちゃええええ!!」ってことなんですけどぉ(^ω^;;;)


いざっ!やってみそっ~!と思って、書いてみたソースがこちら。

var name = new Array("#test", "#test2", "#test3", "#test4");
var url = new Array("URL", "URL2", "URL3", "URL4");

for(var i = 0; i < name.length; i++){
  $(name[i]).click(function(){
       location.href=url[i];
   });
}


おおー!!スッキリしたーっ!(^ω^ノ)ノ








(;o゜Д゜)o





動かない・・・。
なんでぇぇぇー!?と思いながら・・・




---------------1週間が経過---------------



すると・・・clickメソッド内の無名関数は、イベント発生してから読み込むみたいなので、
ループが終わってからの配列で・・・つまり、


name[3]
url[3]

を参照していたみたいなんですー。(詳しい事はわかりませんが(///ω///)



でー。どうすれば良いかといいますとですねぇ~(-ω-;;)

これはグローバル変数「name と url」を返す関数を作ってしまって、clickイベントが発生したら、その"関数を返す関数"を実行すれば良いでしょう!!と言うサイトを見つけたのでー。早速やってみた。

そのソースがこちら。


var name = new Array("#test", "#test2", "#test3", "#test4");
var url = new Array("URL", "URL2", "URL3", "URL4");

for(var i = 0; i < name.length; i++){
  $(name[i]).click(Uhihi(i));
}

function Uhihi(num){
  return function(){
       location.href=url[num];
   };
}



これで、無事に実装することができますたああ!!パチパチっ!



ちなみに、この関数が関数を返すことを"クロージャ"と言うみたいですう(@ω@;;)ハテ





皆さんもjavascriptをやるなら、jQueryを使いましょうッッ!!(笑)



jQueryを使った「続きを読む」・・・
いや、コメント返信です(^ω^!)


クリックしてみそ☆>>
コメント:4件
コメント一覧
デュアルかエヴァンかスライムかメロンパンか知らないですけど
新しいキャラ作ったら連絡よろろん

それでネタつくりましょうー
MCくらいなら一緒にやれるかも??しれないしやれないかもしれないw
By(^ω^)  2010/07/13(Tue)  03:01
管理人のみ閲覧できます
このコメントは管理人のみ閲覧できます
By-  2010/07/16(Fri)  03:32
(^ω^) 専用の可愛い奴お願いします(^ω^)
(^ω^) お(^ω^) ね(^ω^) が(^ω^) い(^ω^) (はぁと
By(^ω^)  2010/07/21(Wed)  04:27
チラリズムは大事かもしれないけど、
閉じるのはやすぎ・・

いつもみたいに、もっと大股開きでおね・・

で、偽者出現ですか?w
ByM  2010/07/23(Fri)  07:02
お名前
タイトル
メール
URL
コメント
パスワード