0
$(function() {
    $('#dialog').click(function() {
      alert("hello");
    });    
});

$('select').yaselect();

JavaScript スクリプトのインクルージョンがどのように機能するかについて、私は本当に混乱しています。したがって、ダイアログのクリック ハンドラーは正常に動作します。しかし、yaselect はそうではありません。$("select").yaselect は関数ではありません

したがって、jQueryは機能しているようですが、yaselectはどういうわけかそうではありません。ただし、ファイルの head セクションに含まれています。

<script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/libs/jquery-1.7.2.min.js?"></script>
<script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/libs/jquery-ui-1.8.20.custom.min.js"></script>
<script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/libs/jquery.yaselect.min.js"></script>

しかし、yii フレームワークは何らかの理由で、head セクションの後半で jquery を再度インクルードします。

<script type="text/javascript" src="/assets/ab20866e/jquery.js"></script>
<script type="text/javascript" src="/assets/ab20866e/jquery.yiiactiveform.js"></script>

これが問題かもしれないことは理解していますが、私はこのコードを引き継ぎました。私は yii を初めて使用するので、どうすればよいか混乱しています。

4

2 に答える 2

2

これは、yaselect(); を持つ特定のスクリプトによるものです。実装が正しく含まれていません。JavaScriptコードを調べると、コードが壊れている場所を見つけることができます。jquery ファイルが正しくインポートされているため、クリック ハンドラーが正常に動作している可能性があります。

また、 jQuery の重複競合をチェックすることも忘れないでください( noConflict()の詳細を参照してください)。これも問題を引き起こす可能性があります。したがって、重複を必ず削除してください。あなたの場合、フレームワークだけでなくjqueryも含めています。サイト全体で単一バージョンの jquery を使用するようにしてください。

if (jQuery) {
alert('jQuery is loaded!');
}

上記のコードを使用すると、jquery がページに存在するかどうかを確認できます。ページにjqueryが存在しない場合は、含めることができます。

于 2012-10-09T16:27:28.813 に答える
0

http://www.yiiframework.com/wiki/311/assetmanager-clearing-browser-s-cache-on-site-update/

これで問題が解決したようです。Yiiフレームワークでは、AssetManagerを使用して静的リソースを処理できます。その後、それらがhtmlソースファイルに直接含まれるのではなく、AssetManagerを介して参照される場合、yiiフレームワークは、リソースが1回だけ含まれるように処理します。

良い :)

于 2012-10-09T16:34:38.687 に答える