GCalHolidaysにbeforeShowイベントを追加する

jQUeryUIのDatepickerに休日の表示を追加するGCalHolidays。業務用アプリの作成で大変お世話になっています。このGCalHolidaysはDatepickerのbeforeShowイベントを利用してカレンダーに休日の情報を上書きしています。
続きを読む

React.jsのsetStateのタイミングが…

componentWillReceivePropsで親コンポーネントの変化を受け取りAJAXでデータをローディングしようとしたのですがsetStateのタイミングでつまづきました。

続きを読む

日本の祝日表示を適用したinline表示のjQuery Datepickerで祝日の消失を防ぐ方法

GoogleカレンダーからJSONPで日本の祝日一覧を取得 – GCalendar Holidays
上記サイトのスクリプトを利用してjQuery Datepickerに日本の祝日を表示し、そのDatepickerをinline表示した場合、日付を選択した際(onSelect時)beforeShowイベントが発生せず、適用した祝日の表示が消えてしまう現象がありました。
非常にマイナーな状況なのですが、個人的にすごい困っていたので記録を残します。
続きを読む

IEでjQueryの$.getJsonの戻り値がキャッシュされてしまう

どうもIEのバージョンによってはjQueryの$.getJsonでデータを取りに行った際の戻り値がキャッシュされるようです。
おかげでデータが更新されず焦りました。

対応策としては引数にTimestampなどを入れるか、$.getJsonではなく$.postを使うと良いようです。

詳しくはこちらのサイトで説明されています。
JQUERY.GETJSON() の罠

suggest.jsをjQueryを使ってAJAX対応にする。

suggest.jsとっても便利です。
開発して下さってありがとうございます。
続きを読む

jQuery Mobileの並び順(z-index)

jQuery Mobileとsuggest.jsの両方を使っていたのですが、suggest.jsで表示される候補がjQuery Mobileで生成されたフォームの裏に回ってしまうことがありました。
続きを読む

コールバック関数内で$(this)の内容が変わってしまう時の解決法

たくさんあるボタンやリンクにClassを指定して、jQueryでイベントを処理するといった処理はよくあると思います。

IDでイベントを取得したのであれば、同様にコールバック関数からIDを指定して更なる処理を行うことは簡単です。
しかしClassでイベントを取得した場合は、$(this)などを利用して、イベントの起こった要素を探すことが多いのではないでしょうか?

残念なことにコールバック関数内で$(this)を呼び出しても直前の処理が呼び出された要素に入れ替わってしまいます。
例えばこんなコードです。

class=”button”が指定された要素からデータ(age)を取得してajax処理をし、
コールバック関数でクリックされた要素からclass=”button”を取り除き、二重処理されないようにしています。
ところがコールバック関数内の$(this)はすでにクリックされた要素とは異なる要素が入っており、
希望するような動作はしません。

なのでこの場合は事前に$(this)の内容を変数に移動しておくことで、$(this)の変化に対応することができます。