例えばC++に比べてjavascriptは型がユルいんで、「これ渡してちゃんと受け取ってくれるんやろか」とか不安になったりする、とか。そういうの。
言語の考え方が違うんで、その切り替えに一寸時間が掛かったりする。
jQuery UI。
因みに1.10.0。
一旦.accordion()で設定した後で要素を追加しても、そのままでは追加された要素のとこはaccordionにならないっぽい。
色々テストコード書いてみたりしたけど、うまくいかず、ビミョウにハマる。
うーん。どうしたものか。
他のjQueryパーツを寄せ集めて自分で組み立てた方が早いか・・・。
と思いつつ一寸調べてみたら、どうもイッペンdestroyしてから.accordion()で設定し直さなければならないっぽい。
てかちゃんとAPI Document読めっつー話。
オウケイ。
ほいじゃあつって、テストコードの頭に.accordion("destroy")をくっつけてみたんだけど、うまくいかない。
どうも.accordion()で設定されてない状態でdestroyするとイカンっぽい。
なので最初に一回.accordion()で設定してから、要素が追加される度にdestroyして再度設定し直す感じで。
これでOK。
解ってみれば簡単な話なんだけど、解るまでが疑心暗鬼な感じ。
まあこの辺がセンスの無さですな、という話。
<!DOCTYPE html> <html> <head> <link rel="stylesheet" type="text/css" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" /> <script src="http://code.jquery.com/jquery-1.9.0.js"></script> <script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script> <script type="text/javascript"> //<h3>に番号振る用 var sum=0; $(function(){ //取り敢えずイッペンaccordion作っとく $("#chau").accordion(); //ボタンクリックで要素追加、その後accordionの設定 $("#button").bind("click", function(){ var chau = "<h3>chau"+sum+"</h3>" +"<div>chau chau chau? chau chau," +" chau chau chaun chau?</div>"; $("#chau").append(chau); sum++; setAccordion(); }); }); //アコーディオンの設定 //イッペンdestroyしてから設定する function setAccordion(){ $("#chau").accordion("destroy"); $("#chau").accordion({ header: "h3", }); } </script> </head> <body> <button id="button">add</button> <div id="chau"></div> </body> </html>こんな感じ。
何故かsyntaxhighlighterで<br />が使えない・・・。