http://www.tinybeans.net/blog/2009/02/19-134819.html
http://semooh.jp/jquery/api/events/bind/type,+%5Bdata%5D,+fn/
jqueryのbind以外でclickに引数をもたせる。
追記: ループの中で使うと遅くなりそうなのでbind("click" ...)の方が良いです。$(xxx).click((function(key){return function(){ ... };})(key));
例。
ソース。
<style type="text/css"> <!-- body #click-test-ap8cljwu, body #click-test-ap8cljwu * { background-color: white; border-width: 0; color: black; font-family: "MS ゴシック","Osaka-mono",monospace; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: 0; line-height: 14px; margin: 0; padding: 0; text-align: center; text-indent: 0; text-transform: none; white-space: nowrap; word-spacing: 0; word-wrap: normal; } body #click-test-ap8cljwu { margin: 0 auto; width: 336px; } body #click-test-ap8cljwu .click-test-ap8cljwu-list { height: 21px; margin-left: 7px; text-align: left; } body #click-test-ap8cljwu .click-test-ap8cljwu-list ul { background-color: transparent; position: absolute; } body #click-test-ap8cljwu .click-test-ap8cljwu-list li { display: block; float: left; margin-right: 7px; _width: 1px; } body #click-test-ap8cljwu .click-test-ap8cljwu-list a { background-color: #D3D3D3; border: 1px solid black; cursor: pointer; display: block; height: 14px; line-height: 14px; padding: 3px 7px; } body #click-test-ap8cljwu .click-test-ap8cljwu-list a.selected { background-color: white; border: 1px solid black; border-bottom-color: white; } body #click-test-ap8cljwu .click-test-ap8cljwu-result { border: 1px solid black; clear: both; height: 280px; overflow: auto; padding: 7px; text-align: left; } body #click-test-ap8cljwu .click-test-ap8cljwu-list ul { border-bottom-width: 0; list-style-type: none; margin: 0; padding: 0; } body #click-test-ap8cljwu .click-test-ap8cljwu-list ul li { border-top-width: 0; float: left; line-height: 14px; margin-top: 0; padding: 0; } --> </style> <div id="click-test-ap8cljwu"></div> <script type="text/javascript"> //<![CDATA[<!-- try{(function(){ var key, aElem, liElem, id = "click-test-ap8cljwu", list = { "one": ["ホーム", "1番", "ファースト"], "two": ["お知らせ", "2番", "セカンド"], "three": ["お問い合せ", "3番", "サード"] }, listElem = document.createElement("div"), ulElem = document.createElement("ul"), resultElem = document.createElement("div"); $(listElem).addClass(id + "-list"); $(resultElem).addClass(id + "-result"); $("#" + id).append(listElem); $(listElem).append(ulElem); $("#" + id).append(resultElem); for (key in list) { liElem = document.createElement("li"); aElem = document.createElement("a"); $(liElem).append(aElem); $(aElem).text(list[key][0]); $(aElem).click((function(key){return function(){ var x; $("#" + id + " ." + id + "-list a").removeClass("selected"); $(resultElem).text(""); $(resultElem).append("key = " + key + "<" + "br/>"); for (x = 0; x < list[key].length; x++) { $(this).addClass("selected"); $(resultElem).append("list[" + key + "][" + x + "] = " + list[key][x] + "<" + "br/>"); } };})(key)); $(ulElem).append(liElem); $("#" + id + " ." + id + "-list a").each(function(){ $(this).click(); return false; }); } })();}catch(e){document.write("<"+"pre>Error: " + e + "<"+"/pre>");} //-->]]> </script>
0 件のコメント:
コメントを投稿