2011-10-21 6 views
0

私はMootoolsの動作 - https://github.com/anutron/behaviorを使用しています。それは正常に動作しますが、ajaxがロードされている要素の動作は適用されません。Mootools:ビヘイビアを取得するには、ajaxをロードした要素を使用しましたか?

は、ここに私のコードです:

var request = new Request.HTML({ 
    url: get_url(), 
    append: $(api.get('append')), 
    evalScripts: true, 
    onSuccess: function(){ 
     window.behavior.apply(document.body); 
    } 
}); 

そして、それは動作しません。

(window.behavior主行動インスタンスである)

は、事前にありがとうございます。

UPD。それは静的な読み込みで私自身の問題でした。上記のコードはうまくいくはずです。

答えて

1

おそらく、Behavior.apply()メソッドで2番目のオプションのパラメータを設定するようにしてください。

成功コールバック関数でwindow.behavior.apply(document.body, true)を試してください。既に処理された要素は、第2のパラメータ "force"がtrueに設定されている場合には、再度処理されます。それはあなたの問題かもしれません。

+0

ありがとうございました。 2番目のパラメータは役に立ちません。 –

+0

ajaxを介して更新されたページにすでに存在していた動作フィルタのみが動作するように見えます。残りの部分はうまく動作せず、その名前のフィルタがないというエラーがスローされます。 –

+0

申し訳ありませんが、それは私の問題でした。質問は終了しました。 –

1

動作をドキュメント全体に再適用する代わりに、新しいコンテンツにのみ再適用します。私はこのパターンを頻繁に成功に使う。

var target = $(api.get('append')); 
var request = new Request.HTML({ 
    url: get_url(), 
    append: target, 
    evalScripts: true, 
    onSuccess: function() {window.behavior.apply(target);} 
});