0

テーブルにデータのリストがあり、ポップオーバーを提供しました。ポインタがその画像の上にあるときのように、そのデータの本体がポップされます。そのビューを分離する前は機能していました。私はyiを使用しています。

これはテーブルの私のコードです:

    <tbody>
        <?php foreach ($page_data['data_list']as $data_from_controller_key => $data_from_controller){?>
        <tr>
            <td>
                <a style="cursor:pointer;" . . . .><?php echo $data_from_controller['title'] ?></a>
            </td>
            <td>
                 <div rel="popover" data-trigger="hover"  
                     data-placement="left" data-content="<?php echo $data_from_controller['content'] ?>" >
                    <a class="btn btn-small" data-toggle="modal"><i class="icon-search"></i></a> 
                </div>
            </td>
        </tr>
        <?php } ?>
    </tbody>

このビューがまだ私のindex.php. 次に、これを別のビューに転送しましたが、次に知ったのは、ポップオーバーが機能しなかったことです。

[アップデート]

だから私は問題がここにないと思います。それは私のJSロードにあります。私の JS はこのビューにロードされませんでした。私の に起こったことと同じようにdatatables.js。コントローラーから初期化してもうまくいかないため、JSを適用するために下部でこれを実行して、JSをこのビューに配置しようとしました:

    <script>
            $('table#listdata').dataTable({
                "sDom": "<'dt_header'<'row-fluid'<'span6'l><'clear'f>>r>t<'dt_footer'<'row-fluid'<'span6'i><'span6'p>>>",
                "aoColumnDefs": [
                    { "bSortable": false, "aTargets": [1] }
                ],
                "bStateSave": true
        }).columnFilter();
    </script>

私の新しい質問は、私のJSがロード/初期化されなかった理由は何ですか?

4

2 に答える 2

0

その理由は、ドキュメントの準備ができた後にスクリプトを記述しなければならないためです。それはあなたの間違いです

$(document).ready(function(){
        $('table#listdata').dataTable({
                "sDom": "<'dt_header'<'row-fluid'<'span6'l><'clear'f>>r>t<'dt_footer'<'row-fluid'<'span6'i><'span6'p>>>",
                "aoColumnDefs": [
                    { "bSortable": false, "aTargets": [1] }
                ],
                "bStateSave": true
        }).columnFilter();
});
于 2013-11-05T04:37:10.937 に答える
0

多くの方法で js スニペットをロードできます。

方法 1: このスニペットは、テーマのメイン ファイルの下部に記述できます。つまり、</body> </html>タグの前。

方法 2:

テーマのメイン ファイルの下部にカスタム js ファイルを含めることができます。つまり、次のコードを確認してください。

  • Yii のデフォルト テーマを使用する場合:

<script src="<?php echo Yii::app()->request->baseUrl; ?>/assets/js/custom.js"></script>

  • カスタムテーマを使用する場合:

<script src="<?php echo Yii::app()->theme->baseUrl; ?>/assets/js/custom.js"></script>

次に、スニペットを custom.js ファイルの関数に書き込みます。

function tableSorter(){

$('table#listdata').dataTable({
    "sDom": "<'dt_header'<'row-fluid'<'span6'l><'clear'f>>r>t<'dt_footer'<'row-fluid'<'span6'i><'span6'p>>>",
    "aoColumnDefs": [
        { "bSortable": false, "aTargets": [1] }
    ],
    "bStateSave": true
}).columnFilter();
}

ここで、特定のコントローラー、特定のアクション、または特定のビューに対して関数を呼び出します。段階で、特定のビューの関数を呼び出す必要があります。必要なビュー ファイルを開いて、ファイルの先頭に次のコードを記述します。

Yii::app()->clientScript->registerScript('tablesorter', "
$(function() { tableSorter();});
");

私はWay 2を使用しています。試してみてください。幸運を

于 2013-11-05T03:41:07.690 に答える