02月09日
javascriptでOOPとjQuery
JavascriptをOOPで、jQueryを組み合わせて使おうとした時にハマった沼からの脱出方法例。
JavaScript:
-
var hoge = {
-
fuga : function() {
-
jQuery.ajax( {
-
url:'hogehoge.xml',
-
success:onSuccess
-
});
-
},
-
onSuccess :function(data) {
-
...
-
},
-
...
-
}
だとバッチリコケる。
そんな時は
JavaScript:
-
jQuery.scope = function(target, func){ return function() { func.apply(target, arguments); }};
-
var hoge = {
-
fuga : function() {
-
var obj = this;
-
jQuery.ajax( {
-
url:'hogehoge.xml',
-
success:jQuery.scope(this, obj.onSuccess)
-
});
-
},
-
onSuccess :function(data) {
-
...
-
},
-
...
-
}
てな感じにすればOK、という場当たり的な対処法。ちょっと「var obj = this;」的なところが駄目っぽさ満載。
コメント & トラックバック
コメントフィード
コメント