2

ページで使用されている MooTools を含むページがあり、facebook sdk も追加しました。

<script src="http://code.jquery.com/jquery-1.7.1.min.js" type="text/javascript"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/mootools/1.3.0/mootools-yui-compressed.js"></script>

そして体の中はこんな感じ。

<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
    FB.init({
        appId      : 'myappid',
        status     : true, // check login status
        cookie     : true, // enable cookies to allow the server to access the session
        xfbml      : true, // parse XFBML
        oauth      : true
    });
</script>

FB招待リクエストの送信に使用します。

FB.ui({
            method: 'apprequests',
            message: 'tests messages',
            //title: 'Invite you friend to MyApp',
            to: fbid
        },function(r){ console.log(r);  });

しかし、これにより、all.jsファイルで「a is null」が表示されます。MooTools ファイルを削除すると、すべて正常に動作します。しかし、MooTools が必要です。この問題の修正方法を教えてください。何か助けてください。

4

1 に答える 1

0

jquery の後に mootools をロードします。これは、それが引き継がれず$、独自の noConflict モードにフォールバックすることを意味し、セレクターはエイリアスdocument.idのみとして残ります。

すべての mootools コードでそれを使用する必要があるか、mootools で to を使用できる単純なクロージャ パターンを使用する必要があり$ますdocument.id

$; // jQuery
(function($) {
    $; // mootools
})(document.id);

mootools を使用する際に考慮すべきその他の事項: これは典型的なものです。for ... のような愚かなことをしないようにしてください。

上記とは別に、失敗した特定のコードまで追跡する必要があります。mootools が要素と見なすものに jQuery 関数を渡している可能性があります。たとえば、$('foo')jQuery が要素オブジェクトを返さない場合などです。うまく$('#foo')いきませんが、うまく$('#foo')[0]いきます。

于 2012-03-08T10:56:25.100 に答える