1

jquery mobile 1.2 を apex 4.2 に含めようとしているときに問題が発生しました。現在、apex 4.2 は jquery mobile 1.1.1 にバンドルされており、ダイアログをサポートし、簡単な方法でポップアップする最新バージョンを使用する必要があります。しかし、この最新バージョンを含めようとすると。私のページは、jquery 1.1.1 と 1.2 のバージョンで 2 回レンダリングされたようにめちゃくちゃになります。すべてのオブジェクトは 2 回表示されます。このスクリプトを使用してみました:

<script>
var jqm120 = jQuery.noConflict();
</script>

しかし運がない。どうかヒントをください。どうもありがとう。

4

2 に答える 2

2

APEX 4.2では、ページ テンプレートに新しい置換文字列が#APEX_CSS#あります。独自のライブラリを使用する場合は、それらを削除#APEX_JAVASCRIPT#できます。これらの置換文字列を削除すると、次のコードがページ ヘッダーに追加されなくなります (アプリケーション属性のコンテンツ配信ネットワークが"None"に設定されていると仮定します)。

/your_image_prefix/css/apex.min.css?v=4.2.0.00.27
/your_image_prefix/libraries/jquery-ui/1.8.22/themes/base/jquery-ui.min.css

/your_image_prefix/libraries/apex/minified/desktop_all.min.js?v=4.2.0.00.27
/your_image_prefix/libraries/apex/minified/legacy.min.js?v=4.2.0.00.27

<script type="text/javascript">
var apex_img_dir = "/your_image_prefix/", htmldb_Img_Dir = apex_img_dir;
</script>

警告 警告: 一部の APEX デフォルト機能が同時に削除されるため、削除されたファイルの一部を手動で含める必要がある場合があります :/

例えば ​​:

  • apex.min.css?v=4.2.0.00.27開発者バーが正しく表示されるために必要です。
  • desktop_all.min.js?v=4.2.0.00.27JQuery と JQuery UI だけでなく、すべての apex JQuery コア関数も含まれています...
  • legacy.min.js?v=4.2.0.00.27いくつかの主要な apex Javascript 関数 (doSubmit()など) を定義しています。

残念ながら、 APEX は、JQuery ライブラリのみを削除するための置換文字列を提供していません...

したがって、解決策は、デフォルトの APEX ファイルを取得し、それらから JQuery ライブラリ コードのみを削除して、新しいライブラリ コードに置き換えることです...

もちろん、あなたが言及したように使用するのがより簡単な解決策であってもJQuery.noConflict(正直なところ、試したことはありません)、私が見つけた唯一の解決策ですが、ライブラリを2回ロードし、ページのロードが遅くなりますか?

編集

申し訳ありませんが、あなたの場合、jQuery mobileを使用しているため、次のようになります。

/your_image_prefix/libraries/jquery-mobile/1.1.1/jquery.mobile-1.1.1.min.css
/your_image_prefix/themes/theme_50/css/4_2.css

/your_image_prefix/libraries/apex/minified/mobile_all.min.js?v=4.2.0.00.27
/your_image_prefix/libraries/jquery-mobile/1.1.1/jquery.mobile-1.1.1.min.js
/your_image_prefix/libraries/apex/minified/legacy.min.js?v=4.2.0.00.27

<script type="text/javascript">
var apex_img_dir = "/your_image_prefix/", htmldb_Img_Dir = apex_img_dir;
</script>

テンプレートから削除されます (自分で確認できます)。

しかし、発言はまだ適用されます。

于 2012-10-29T11:30:36.323 に答える
0

次のようなことができます。

<script type='text/javascript' src='js/jquery_1.7.1.js'></script>   
<script type='text/javascript'>  
 // In case you wonder why we pass the "true" parameter,
 // here is the explanation:
 //   - When you use jQuery.noConflict(), it deletes
 //     the "$" global variable.
 //   - When you use jQuery.noConflict(true), it also
 //     deletes the "jQuery" global variable.
 var $jq = jQuery.noConflict(true);  
</script>  
<script type='text/javascript' src='js/jquery_1.2.1.js'></script> 

$このように、 useの代わりに新しいバージョンの jquery で何かを作成したい場合$jq

$jq('.selector').on('click', function(){  
    //do something  
});
于 2012-10-28T02:35:25.240 に答える