【jQuery】配列や連想配列をコピーする

のように配列や連想配列をそのまま代入すると「参照渡し」という形になり、
コピー先だけ変更したつもりがコピー元も一緒に変更されてしまいます。

コピーするには配列の中身を代入していく必要があるのですが、
jQueryの場合はextend関数で簡単にコピーできます。

配列:

連想配列:

【JavaScript】連想配列でも配列でも要素数を取得

配列の要素数はlengthで取得できますが、
連想配列の場合はlengthは使えません。
スマートではないですがfor inでループを回してカウントするのが簡単です。

連想配列でも配列でも同じように要素数が取得できる関数です。

文字列だったら長さが返ってきます。

【WordPress】Twenty Seventeenテーマで5つ目のセクションを追加する

Twenty Seventeenテーマでは
「外観」→「カスタマイズ」→「テーマオプション」から
簡単に4つまでのセクションを設定することができるようになっていますが、
ここに5つ目のセクション設定枠を追加するにはPHPファイルを変更しなくてはならないようです。

といっても非常に簡単です。
functions.phpに下記のコードを追加するだけです。

これでセクションを設定するプルダウンの数が5つになります。
簡単ですね。

【jQuery】val()、prop()で値を変更した際にonchangeイベントを発火させる

jQueryでフォームの値を変更した際に、単に

としただけでは、onchangeイベントは実行されませんが、

のようにchange()を呼ぶことでonchangeイベントを発火させることができます。

【jQuery】Ajaxの非同期通信を中断する

jQueryの$.ajax関数で

にして非同期通信を行うときに、通信を中断することができます。

やりかたは、$.ajax関数の戻り値を変数に格納し、

中断したい場合はその変数のabortメソッドを呼びます。

abortメソッドを呼ぶと、上記の例のように
thrownに「abort」が返されますので
エラーなのか中断なのかの切り分けが可能です。

通信中にモーダルでローディング表示を行っている場合などに
ローディングダイアログに「中断」リンクをつけてあげると親切ですよね。