Как отключить повторное подключение jquery?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
user
Сообщения: 132
Зарегистрирован: 2017.12.05, 16:55

Как отключить повторное подключение jquery?

Сообщение user »

У меня jquery подключается в шапке и есть форма в модальном окне с ajax валидацией
при таком раскладе подключается два скрипта jqury, как убрать второе подключение?

unknownby
Сообщения: 293
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Как отключить повторное подключение jquery?

Сообщение unknownby »

А модальное окно при помощи какого-то виджета вызывается?

user
Сообщения: 132
Зарегистрирован: 2017.12.05, 16:55

Re: Как отключить повторное подключение jquery?

Сообщение user »

это мой компонент
widget

unknownby
Сообщения: 293
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Как отключить повторное подключение jquery?

Сообщение unknownby »

Судя по всему у тебя первый jQuery подключается в Assets, а потом ты ещё разок добавил assets для своего виджета. Тем самым задублировав.
Проверь все подключения Assets

user
Сообщения: 132
Зарегистрирован: 2017.12.05, 16:55

Re: Как отключить повторное подключение jquery?

Сообщение user »

unknownby писал(а):
2020.02.19, 07:17
Судя по всему у тебя первый jQuery подключается в Assets, а потом ты ещё разок добавил assets для своего виджета. Тем самым задублировав.
Проверь все подключения Assets
да первый подключается в Assets
а второй подключается, когда я подключаю виджет, как его отключить?

unknownby
Сообщения: 293
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Как отключить повторное подключение jquery?

Сообщение unknownby »

user писал(а):
2020.02.20, 11:56
да первый подключается в Assets
а второй подключается, когда я подключаю виджет, как его отключить?
А можно как-то увидеть подключение виджета и сам виджет. Вариант, что в Assets специальном для виджета.

У меня было подключение в двух виджетах одного и того же js для отображения слайдеров. В одном убрал и всё заработало как надо. В вашем случае возможно такое же :)

user
Сообщения: 132
Зарегистрирован: 2017.12.05, 16:55

Re: Как отключить повторное подключение jquery?

Сообщение user »

в шаблоне подключаю

Код: Выделить всё

MyAsset::register($this);

Код: Выделить всё

<?php

namespace frontend\assets;

use yii\web\AssetBundle;

class MyAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [];
    public $jsOptions = [
        'position' => \yii\web\View::POS_HEAD,
    ];
    public $js = [
        'jquery.js',
    ];
    public $depends = [];
}
Там же подключаю компонент

Код: Выделить всё

<?=MyComponent::widget([]) ?>

Код: Выделить всё

<?php

namespace frontend\components;

use Yii;
use yii\base\Widget;

class MyComponent extends Widget
{

    public function run()
    {
        $model = new \frontend\models\MyComponent();

        return $this->render('mycomponent',
            ['model' => $model]
        );
    }
}
если убираю 'position' => \yii\web\View::POS_HEAD, все ок

Аватара пользователя
ElisDN
Сообщения: 5490
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Как отключить повторное подключение jquery?

Сообщение ElisDN »

JQuery подключайте через JQueryAsset, а не вручную.

user
Сообщения: 132
Зарегистрирован: 2017.12.05, 16:55

Re: Как отключить повторное подключение jquery?

Сообщение user »

ElisDN писал(а):
2020.02.21, 14:35
JQuery подключайте через JQueryAsset, а не вручную.
вы имеете ввиду так

Код: Выделить всё

    public $jsOptions = [
        'position' => \yii\web\View::POS_HEAD,
    ];
    public $js = [
        //'jquery.js',
    ];
    public $depends = [
        'yii\web\JqueryAsset',
    ];
у меня тогда часть скрипов перестает работать

Аватара пользователя
ElisDN
Сообщения: 5490
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Как отключить повторное подключение jquery?

Сообщение ElisDN »

Да, так. Чтобы все работали пропишите $depends всем своим скриптам.

Ответить