Как перезагрузить js файл?

Вопросы по вёрстке и JavaScript
Ответить
smith
Сообщения: 8
Зарегистрирован: 2018.05.19, 18:03

Как перезагрузить js файл?

Сообщение smith »

Есть js скрипт, который применяет разные классы для элементов (делает из чекбокса переключатель а-ля iOS и т.д.).
В нем прописан код по типу такого для разных объектов.

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

$('[data-plugin-ios-switch]').each(function() {
   this.themePluginIOS7Switch();
});
Некоторые элементы, для которых надо применить класс, загружаются через Ajax уже после подключение этого скрипта и, соответственно, с ними ничего не происходит.
Ранее когда я делал проект без Yii, добавлял еще раз нужный скрипт внутрь тэга body и все работало, но в Yii так не получается. Скрипт добавляется но не выполняется. Как можно перезагрузить этот скрипт после выполнения Ajax запроса?
Аватара пользователя
Dominus
Сообщения: 892
Зарегистрирован: 2013.03.14, 21:27
Откуда: Россия, Иваново
Контактная информация:

Re: Как перезагрузить js файл?

Сообщение Dominus »

Ну как вариант можно попробовать так:
JS

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

function loadSwitch() {
    $('[data-plugin-ios-switch]').each(function() {
        this.themePluginIOS7Switch();
    });
}
Начальная загрузка loadSwitch()
JS

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

$(function () {
    loadSwitch();
});
После ответа ajax запускаем loadSwitch():
JS

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

function getContent(e) {    
    $.ajax({
        url: e.href,
        dataType: 'json',
        type: 'post',
    }).done(function (result) {
        //...
        loadSwitch();       
    });
}
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!
smith
Сообщения: 8
Зарегистрирован: 2018.05.19, 18:03

Re: Как перезагрузить js файл?

Сообщение smith »

я такой вариант рассматривал, но там таких классов около сотни
не очень хотелось переписывать этот скрипт и для каждого класса делать функцию
но думаю придется
smith
Сообщения: 8
Зарегистрирован: 2018.05.19, 18:03

Re: Как перезагрузить js файл?

Сообщение smith »

или можно попробовать засунуть все эти классы в одну функцию и потом ее вызывать
Аватара пользователя
vitalik1183
Сообщения: 1675
Зарегистрирован: 2014.07.01, 08:42

Re: Как перезагрузить js файл?

Сообщение vitalik1183 »

Можете попробовать через ajaxStop
Yii2!
smith
Сообщения: 8
Зарегистрирован: 2018.05.19, 18:03

Re: Как перезагрузить js файл?

Сообщение smith »

получить событие окончания загрузки не проблема
проблема в том что не перезагружается js скрипт
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Как перезагрузить js файл?

Сообщение andku83 »

smith писал(а): 2018.05.24, 09:20 получить событие окончания загрузки не проблема
проблема в том что не перезагружается js скрипт
А скрипт и не должен перезагружаться, должны выполняться функции отвечающие за это...
Вот к событию и привяжите запуск функций.
smith
Сообщения: 8
Зарегистрирован: 2018.05.19, 18:03

Re: Как перезагрузить js файл?

Сообщение smith »

andku83 писал(а): 2018.05.25, 14:20 Вот к событию и привяжите запуск функций.
уже так и сделал, все работает, спасибо за советы
Ответить