0

テンプレートに jquery v1.8 を使用し、Mura バージョン 6.1 を使用しています。ページを読み込もうとすると上記のエラーが発生し、この行で発生します。$.extend(window,mura);

明らか$に、それを使用することはできませんが、このコードはすべてのページで村によってスクリプトタグに動的に追加されるものであり、私が使用するライブラリファイルではないため、それを防ぐために何をすべきかわかりませんjQueryの後にロードすることで調整できます。

詳細なコードは次のとおりです。includes/display_objects/html_head/global.cfm

var mura={
loginURL:"#variables.loginURL#",
siteid:"#variables.$.event('siteID')#", 
siteID:"#variables.$.event('siteID')#", 
context:"#variables.$.globalConfig('context')#", 
jslib:"#variables.$.getJsLib()#",
assetpath:"#variables.$.siteConfig('assetPath')#",
themepath:"#variables.$.siteConfig('themeAssetPath')#",
htmlEditorType:"#variables.$.globalConfig('htmlEditorType')#",
rb:"#lcase(listFirst(variables.$.siteConfig('JavaLocale'),"_"))#",
#variables.$.siteConfig('JSDateKeyObjInc')#
}
$.extend(window,mura);

$カスタマイズされた場合、アップグレードされた場合、muraコアファイルは変更を保持しないため、jQueryで置き換えるなどの変更は行いたくありません。で置き換え$てみましjQueryたが動作しますが、テンプレート ファイルまたはカスタム js ファイルをカスタマイズして jQuery の競合を回避する方法はありますか上書きします。

4

2 に答える 2

0

<head>開発者がドキュメントの一部以外の場所 (たとえば、終了タグの前)に jquery.js への参照を持たせようとしたときに、これが発生するのを見てきました。そのため、ドキュメント</body>の一部に jQuery が読み込まれていることを確認して<head>ください。はい、Mura は終了タグの前にその JS を追加し</head>ますが、jquery.js への参照がそこにある限り、この問題に遭遇するべきではありません。

それが問題でない場合は、これが発生している場所へのリンク、または少なくともこれが発生しているページの完全にレンダリングされた html のいずれかを確認したいと思います。

于 2015-03-23T02:07:40.407 に答える
0

以下のように、jQuery コードの周りで即時呼び出し関数式 (IIFE)を使用してみてください。これは、jQuery を使用するすべての場所で実行する必要がありますが、競合がないことが保証されます。

var $ ='blah'; // assign $ to something other than jQuery, like in your enviroment
try{
  alert( $('#test').val() ); // this would break as 'blah' doesnt have a .val() function
  }
catch(err){
  alert('$ is not jQuery in this scope');
  }

(function($) {
   // inside this scope $ will allways be jQuery, even if $ is something else out in the wild
   alert( $('#test').val()+'\n\n This works because $ is protected in this scope' );
    
})(jQuery); //pass jQuery in as the parameter of this IIFE 

// see http://stackoverflow.com/questions/11403266/understanding-vs-jquery-in-iife-instead-of
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="test" value="working"/>

于 2015-03-22T18:25:32.947 に答える