javascript でコールバック関数を実行しよう
javascript でコールバック関数を使わないといけなくなったので覚書。
手順としては、変数に無名関数を代入してコールバック用の関数を準備して、呼び出す関数に引数で渡して、() で実行する感じ。
シンプルなソースとしては以下の通り。
javascript でコールバック関数を使わないといけなくなったので覚書。
手順としては、変数に無名関数を代入してコールバック用の関数を準備して、呼び出す関数に引数で渡して、() で実行する感じ。
シンプルなソースとしては以下の通り。
JQuery を使ってて、複数の非同期通信( $.ajax() )が全て終わってから処理をしたい場合がありまして、$.ajax() の戻り値を配列に突っ込んで、$.when で処理しようとしたのですが・・・。
全て成功の場合はそれで良かったのですが、どれか一つでも非同期通信が失敗すると、そこで when の fail が走っちゃうみたいなんですよね。
今回は成功でも失敗でも、とにかく全ての処理の終了を待ちたかったので、これではちょっと困ります。
JQuery で複数の ajax(非同期リクエスト)がすべて終了するのを待ってから何かしたいときのメモです。
やり方としては、処理を待ちたい ajaxオブジェクトを配列に格納しておいてから、when で処理します。
ソースは以下の感じで。
ソースとしては以下な感じ。
変数に改行を含んだ文字列を代入する場合、通常は改行を "\n" に置き換えて以下のコードみたいに書くのですが、とてもエレガントな書き方に出会ったのでちょっとメモ φ(..)。
JQuery の 1.x系を使っていたら、Firefoxに 「getPreventDefault() の使用は推奨されません。代わりに defaultPrevented を使用してください。」と警告されてしまいました。
JavaScriptから特定のHTMLタグの子要素を取得してホゲホゲする用事ができたので、いろいろと調べてみた結果、childElementCount を使うのが良さそうだったのでメモメモです φ(..)。
たとえば・・・
JavaScriotからHTMLの属性(プロパティ)の値を取得する場合、document.getElementById('hoge').value なんてやると手っ取り早いのですが、オリジナルの属性をしかもハイフンの入った名前で付けられてる(例えば my-id みたいな)と、この書き方では上手く中身を取り出せません。
知らずに document.getElementById('hoge').my-id と書いて見事にハマってしまいました・・・orz
どうやらmyの後ろの “-” が減算演算子として扱われてしまうようなんです。つか、誰だよ、こんな属性作ったの!
ちょっと前に、現在表示しているページヘのリンクを作成するブックマークレットを作ってみたのですが、せっかくダイアログに[OK]ボタンがあるのだから、そもままクリップボードにテキストをコピー出来たら便利じゃね? と、いろいろ調べてみたのですが・・・。
タイトルにもある通り、どうやらちょっと無理っぽいという結論に達しました。
現在表示しているページへのリンクを作成するブックマークレットを作ってみました。