Всплывающая подсказка Twitter bootstrap 3 не работает в Yii framework

#twitter-bootstrap #yii #twitter-bootstrap-3

#twitter-bootstrap #yii #twitter-bootstrap-3

Вопрос:

Я пытаюсь использовать всплывающую подсказку Twitter bootstrap в приложении Yii, но, похоже, она не работает. Ошибка возврата консоли Firebug TypeError: $(...).tooltip is not a function . Как вы можете видеть в коде, bootstrap.js файл включен в комплект поставки. Но эта функция не может быть найдена, может быть, что-то переопределяет ее? Мой main.php код макета по умолчанию:

 <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="language" content="en" />

    <!-- blueprint CSS framework -->
    <link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/screen.css" media="screen, projection" />
    <link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/print.css" media="print" />

    <!--[if lt IE 8]>
        <link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/ie.css" media="screen, projection" />
        <![endif]-->

    <link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/main.css" />
    <link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/form.css" />
    <link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/custom.css" />
    <link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/bootstrap/bootstrap.css" />
    <link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/custom_bootstrap.css" />

    <script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/jquery-2.1.1.min.js"></script>

    <script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/bootstrap.min.js"></script>
    <script type="text/javascript">
        jQuery(function() {
            $("a[data-toggle='tooltip']").tooltip();
        });
    </script>
    <title><?php echo CHtml::encode($this->pageTitle); ?></title>
</head>

// body code fragment in the same layout file------------------------------
                            <?php   
                            $this->widget('zii.widgets.CMenu', array(
                                'items' => array(
                                    array(
                                        'url' => array('/site/login'),
                                        'visible' => Yii::app()->user->isGuest,
                                        'linkOptions' => array('class' => 'btn btn-default navbar-btn tooltip_element',
                                            'data-toggle' => 'tooltip',
                                            'title' => 'login',
                                            'data-placement' => 'bottom')),
                                ),
                                'linkLabelWrapper' => 'span',
                                'linkLabelWrapperHtmlOptions' => array('class' => 'glyphicon glyphicon-log-in'),
                                'htmlOptions' => array('class' => 'nav navbar-nav',
                                ),
                            ));
                            ?> 
  

Комментарии:

1. Ваш bootstrap.min.js построен с помощью всплывающей подсказки? Браузер находит файл или 404ing? Можете ли вы опубликовать нерабочий пример?

2. Я понял, как заставить это работать, добавил этот код вместо простого <link>...</link> включения: <?php $baseUrl = Yii::app()->request->baseUrl; $cd = Yii::app()->getClientScript(); $cd->registerScriptFile($baseUrl . '/js/bootstrap.min.js'); ?>

Ответ №1:

Я понял, как заставить это работать, добавил этот код.

Вместо этого это:

<link>...</link>

Заменить:

<?php
$baseUrl = Yii::app()->request->baseUrl;
$cd = Yii::app()->getClientScript();
$cd->registerScriptFile($baseUrl . '/js/bootstrap.min.js');
?>