« | »

02月09日 

javascript

javascriptでOOPとjQuery

JavascriptをOOPで、jQueryを組み合わせて使おうとした時にハマった沼からの脱出方法例。

JavaScript:
  1. var hoge = {
  2.     fuga : function() {
  3.         jQuery.ajax( {
  4.             url:'hogehoge.xml',
  5.             success:onSuccess
  6.         });
  7.     },
  8.     onSuccess :function(data) {
  9.         ...
  10.     },
  11.     ...
  12. }

だとバッチリコケる。

そんな時は

JavaScript:
  1. jQuery.scope = function(target, func){ return function() { func.apply(target, arguments); }};
  2. var hoge = {
  3.     fuga : function() {
  4.         var obj = this;
  5.         jQuery.ajax( {
  6.             url:'hogehoge.xml',
  7.             success:jQuery.scope(this, obj.onSuccess)
  8.         });
  9.     },
  10.     onSuccess :function(data) {
  11.         ...
  12.     },
  13.     ...
  14. }

てな感じにすればOK、という場当たり的な対処法。ちょっと「var obj = this;」的なところが駄目っぽさ満載。

参考ページ

トラックバック URL

コメント & トラックバック

コメントなし

コメントフィード

コメント