Dimgol
@Dimgol

Почему файл со скриптами не срабатывает второй раз в модальном окне?

Страница загружается через renderAjax()
return [     
  'content'=>$this->renderAjax('update', [
   'model' => $model,  ]),            
             ];


В view update есть регистрация скриптов
$this->registerJsFile('/js/script.js',['depends' => 'yii\web\JqueryAsset']);

Но при вызове модального окна скрипты срабатывают только один раз, при последующем вызове модального окна не работают скрипты, хотя в консоли разработчика видно, что файлы перезаписываются

Временное решение писать скрипты в view, работает только так
$script = <<<JS
alert('test')
JS;
$this->registerJs($script);

render() и renderPartial() не помогает

UPD: страница с gridview где у каждой записи просмотр в модальном окне.
Первый раз когда загружается модальное окно, скрипты срабатывают, которые зарегистрированы в view модального окна.
Но когда закрываешь это модальное окно и запускаешь модал окно этой же записи еще раз или другой записи, то скрипты не работают
  • Вопрос задан
  • 202 просмотра
Пригласить эксперта
Ответы на вопрос 1
vitaly_74
@vitaly_74
попробуйте писать весь js в файлах, далее если используете jquery то на каждый обработяик делайте так: $(document).on("click", "selector", function(){});
дело в том что вы когда что то подгружаете через ajax это будет срабатывать ровно один раз, т.е. после обновления данных jqury перестает видеть то что нарисовано вновь. код выше помогает решить эту проблему
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы