3

jquery フォーム プラグインを使用するブックマークレットを作成しています。

私が抱えている問題は、ブックマークレットが使用されている可能性のある Web ページが、既に「$」を使用している別の js ライブラリを使用している可能性があることです。問題ありません。jQuery に noConflict() を使用するように指示できます。

ただし、jQuery のフォーム プラグインも '$' を使用しており、これを制御することはできません。$ を使用せず、代わりに jQuery を使用するようにこのプラグインに指定する方法はありますか?

詳細..

TNi が示唆するように、私は問題を誤解している可能性があります。

これが私がすることです

私はSafari 5を使用しています。これが私がしていることです(jqueryはすでにロードされています)....

var scriptElem = docEl.createElement('script');
scriptElem.setAttribute('src',"http://localhost:81/p/a2b/jquery.form.js");
scriptElem.setAttribute('type','text/javascript');
document.getElementsByTagName('head')[0].appendChild(scriptElem);

その後

jQuery(docEl).ready(function() {
    jQuery('#a2b_cart').ajaxForm(function () { alert (" yo");});

});

JavaScript コンソールに表示される内容:

jQuery("#a2b_cart").ajaxForm is not a function
4

2 に答える 2

2

フォームを初期化するコードは、script要素を追加した直後、ただしロードされる前に呼び出される可能性があります。jQueryはすでにロードされているため、次の方法でフォームファイルを呼び出しますgetScript

jQuery.getScript("http://localhost:81/p/a2b/jquery.form.js", function () {
    jQuery('#a2b_cart').ajaxForm(function () { alert("yo"); });

    // Rest of your code here, or call out to another function
});

// Don't place code here, form.js hasn't loaded yet.

コールバック関数は、スクリプトファイルがロードされた後にのみ実行されます。

于 2010-07-11T23:59:57.597 に答える
2

フォーム プラグインは、 への$呼び出しと競合することなく、独自のコード内でローカルに使用できるようにする手法を使用しますjQuery.noConflict()

フォームをプラグインで処理するように設定するときはjQuery、代わりに$. 問題が解決しない場合は、問題を解決するために特定のコードを確認する必要があります。

于 2010-07-11T22:44:08.263 に答える