简体   繁体   English

在yii2上使用Pjax时出错

[英]Error using Pjax on yii2

I am trying to implement content autoload wit the aid of pjax on yii2 but I get Uncaught TypeError: jQuery(...).pjax is not a function. 我试图在yii2上借助pjax实现内容自动加载,但出现Uncaught TypeError:jQuery(...)。pjax不是一个函数。 I can't solve it. 我解决不了 This is my view file: 这是我的视图文件:

<?php
    use yii\widgets\Pjax;
    use yii\helpers\Html;
?>
<title>Web-shop</title>
</head>
<body>
<div class="sort-panel">
                <div class="container">
                    <div class="sort">
                        <p><span class="hidden-xs">Sort by:&nbsp;</span>
                            <?php Pjax::begin([]); ?><span class="sorter active-sorter">
                                <?= Html::a(
                                'name&nbsp;',
                                ['site/inner', 'action' => 'name'],
                                ['class' => 'sorter  name']
                                ) ?>

                                <span class="glyphicon glyphicon-chevron-down"></span>
                            </span>&nbsp;|&nbsp;<?php Pjax::end(); ?>

                            <?php Pjax::begin([]); ?><span class="sorter"><?= Html::a(
                                'price&nbsp;',
                                ['site/inner', 'action' => 'price'],
                                ['class' => 'sorter name']
                                ) ?>
                                <span class="glyphicon"></span>
                            </span>&nbsp;|&nbsp;<?php Pjax::end(); ?>
                            <?php Pjax::begin([]); ?><span class="sorter"><?= Html::a(
                                'date&nbsp;',
                                ['site/inner', 'action' => 'date'],
                                ['class' => 'sorter  name']
                                ) ?>
                                <span class="glyphicon"></span>
                            </span>&nbsp;|&nbsp;<?php Pjax::end(); ?>
                            <?php Pjax::begin([]); ?><span class="sorter"><?= Html::a(
                                'popularity&nbsp;',
                                ['site/inner', 'action' => 'popularity'],
                                ['class' => 'sorter  name']
                                ) ?>
                                <span class="glyphicon"></span>
                            </span><?php Pjax::end(); ?>
                        </p>
                    </div>
                    <div class="view hidden-xs">
                        <span class="glyphicon glyphicon-th active-view"></span>&nbsp;
                        <span class="glyphicon glyphicon-th-list"></span>
                    </div>
                    <div class="clear"></div>
                </div>
            </div>
        <div class="container inner-content push">
           <?php  foreach ($posts as $post) { ?>
            <div class="event-list">
                <a href="#" class="image-wrapper event-list-image col-sm-4" style="background-image: url(events/party-girls.jpg);"></a>
                <div class="event-list-content col-sm-8">
                    <div class="col-xs-6 event-list-heading">
                        <h1><a href="#"><?=$post->title?></a></h1>
                        <p class="event-list-date"><?=$post->date?></p>                    
                    </div>
                    <p class="col-xs-6 event-list-price"><?=$post->price?></p>
                    <div class="clear"></div>
                    <div class="event-list-desc">
                        <?=$post->full_text?>

                        <a href="<?=$post->link?>" class="go_to">Go to</a>

                    </div>
                </div>
                <div class="clear"></div>
            </div>
           <?php } ?>
        <div class="clear"></div>    
        <?php Pjax::begin(['enableReplaceState' => false]);
        $a = $a +1;?>
            <?= Html::a(
                                'Load More',
                                ['site/inner', 'action' => $action,'a' => $a],
                                ['class' => 'load-more']
                                ) ?><?php Pjax::end(); ?>
        </div>
        <div class="clear"></div>
</body>
</html>

This is action in Sitecontroller: 这是Sitecontroller中的操作:

public function actionInner($action = '', $a = 0)
    {
        $posts = Event::find()->limit(5 + $a*3)->all();
foreach ($posts as $post) {
            $post->price = $post->price - $post->price * $post->discount/100;
        }
        if ($action === 'name') {
            $posts = Event::find()->limit(5 + $a*3)->orderBy(['title' => SORT_ASC])->all();
        foreach ($posts as $post) {
            $post->price = $post->price - $post->price * $post->discount/100;
        }
            }
        $news = Event::find()->limit(5 + $a*3)->orderBy(['date' => SORT_DESC])->all();
        $populars = Event::find()->where(['is_popular'=> 1])->limit(5 + $a*3)->orderBy(['likes' => SORT_DESC])->all();

        return $this->render('inner',[
            'posts' => $posts,
            'time' => date('H:i:s'),
            'a' => $a,
            'action' => $action
        ]);
    }
  1. Make sure of you installed 'fxp/composer-asset-plugin' corrently. 确保正确安装了“ fxp / composer-asset-plugin”。

    composer global require "fxp/composer-asset-plugin:~1.1.3"

  2. Check the folder 'vender/bower/yii2-pjax', if it doesn't exists, run 检查文件夹“ vender / bower / yii2-pjax”,如果不存在,请运行

    composer install

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM