0

コントロールで特定のバージョンの jQuery (既にページに割り当てられている) を使用し、残りのコントロールのために以前のバージョンに戻す方法を以下に示します。

これが理想的ではないことはわかっていますが、who アプリは後でクリーンアップされます。

前もって感謝します。

<!-- This would be set earlier on the page. Possibly at page level or in a previous control -->
<script type="text\javascript" src='jquery-1.7.1.js'></script>

<!-- This would at the start of the control -->
<script>
var $origJquery = null; //Should be unique var name for the control

if(typeof jQuery != 'undefined')
    $origJquery = jQuery.noConflict();
</script>

<script type="text\javascript" src='jquery-1.7.2.js'></script>

<script>
var $newJquery = jQuery.noConflict();

//Can use $newJquery here

</script>

<script>
//Set back when finished at end of control
if($origJquery != null)
{
    $ = $origJquery;
    $origJquery = null;
}
</script>
4

1 に答える 1

0

デフォルト バージョンをロードする前に、特定の (新しい) バージョンをロードします。

<script type="text\javascript" src='jquery-1.7.2.js'></script>

<script>

    // Assign it to the new name space
    var $ns = jQuery.noConflict();

</script>

これで、jQuery バージョンが新しい名前空間に割り当てられました。それで

<script type="text\javascript" src='jquery-1.7.1.js'></script>

デフォルトのバージョンは、デフォルトの jQuery 名前空間 ($) ではアクセスできません。

新しいコンポーネントは、$ns('.selector') でそのバージョンにアクセスできます。

お使いのバージョンでは、新しい名前空間は読み込み中のみ有効であり、新しいコンポーネントが読み込み後に (準備完了で) 処理を実行すると、問題が発生します。

于 2012-06-29T15:42:33.497 に答える