2014年11月18日

JQueryUIのaddClassが動作しない場合がある

 Webシステムで画面の操作をするのにJavaScriptを使用していると思います。
そこで、一般的に使用されているJQueryを使ってJavaScriptを書いています。

 今回、JQueryのよく使うメソッドのaddClassでバグらしい動作を発見しました。

JQueryのバージョンは、「2.1.0」を使用しています。
JQuery UIのバージョンは、「1.10.4」を使用しています。

現象
$(funciton() { });内で書いたロジックが正常動作していない。


やりたいことはidがitemの項目に、"readonly"というclassを付ける処理

$(function() {

  $("#item").addClass("readonly");

});

この場合、readonlyというclassは付きません。メソッドチェーンを書いた場合、その後ろも動作していないようです。


OKパターン
$(function() {

  $("#item").addClass("readonly", 1);

});
JQuery UIで拡張されたaddClassの二個目の引数(duration)を設定(1ms)設定することで動作しました。


NGパターンが絶対ダメかというとそういうわけではなく、何かのイベント(changeイベントなど)で実行した場合は正常動作します。
※それだから、解決まで時間がかかりました。

ただ、新しいバージョンの適用やJQuery自体のロジックの調査は今のところ考えていません。時間ができたらやってみようかと思っています。
JQueryとJQueryUIのバージョンの問題の可能性もありそう…。


0 件のコメント:

コメントを投稿