yii
(jammi )
October 23, 2012, 5:36pm
1
Hi,
ich verwende in meinem Projekt das CJuiAutoComplete von yii.
$this->widget('zii.widgets.jui.CJuiAutoComplete', array(....
.
Vorher binde ich jquery und jquery-ui ein, da ich es auf allen Unterseiten benötige
<?php echo CGoogleApi::init(); ?>
<?php echo CHtml::script(
CGoogleApi::load("jqueryui", "1.8.2")
);?>
Dies funktioniert wunderbar und jquery und jquery-ui sind eingebunden.
Nun baut yii bei mir am Ende der Seite trotzdem jquery-ui noch einmal ein.
<script type="text/javascript" src="/assets/60e23c/jui/js/jquery-ui.min.js"></script>
<script type="text/javascript">
/*<![CDATA[*/
jQuery(function($) {
jQuery('#s').autocomplete({'delay':10,'showAnim':'fold','minLength':'2','select':function(event, ui){
...
Wie kann ich das unterbinden?
mikl
(Mike)
October 24, 2012, 10:35am
2
Du kannst das scriptMap feature von CClientScript benutzen und in deiner main.php sowas in der Art eintragen:
'clientScript' => array(
'scriptMap' => array(
'jquery-ui.min.js' => 'http://code.jquery.com/ui/1.9.0/jquery-ui.min.js',
),
Dann musst du das ganze allerdings auch so im View registrieren:
Yii::app()->clientScript->registerCoreScript('jquery.ui');
yii
(jammi )
October 24, 2012, 9:45pm
3
Hi Mike,
danke das hat super geklappt!
Hier der Code für alle:
'clientScript' => array(
'packages' => array(
'jquery' => array(
'baseUrl' => '//ajax.googleapis.com/ajax/libs/jquery/1.8.2/',
'js' => array('jquery.min.js'),
),
),
'scriptMap' => array(
'jquery-ui.min.js' => '//ajax.googleapis.com/ajax/libs/jqueryui/1.9.0/jquery-ui.min.js',
),
),
mikl
(Mike)
October 26, 2012, 7:58am
4
Und wenn jemand nach den Namen der Javascript-Dateien sucht, die man in scriptMap verwenden muss, der sollte mal einen Blick in framework/web/js/packages.js werfen.