yandex maps ballon и \Yii::$app->view->render('view');

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

yandex maps ballon и \Yii::$app->view->render('view');

Сообщение an.viktory@gmail.com »

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

myPlacemark = new ymaps.Placemark([55.907228, 31.260503], {
            // Чтобы балун и хинт открывались на метке, необходимо задать ей определенные свойства.
            balloonContentHeader: "Балун метки",
            balloonContentBody: ".\Yii::$app->view->render('view').",
            balloonContentFooter: "Подвал",
            hintContent: "Хинт метки"
        });
вообщем запихиваю в balloonContentBody целый вид. рендерится прекрасно НО.....

yandex maps api в виде

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

$this->registerJsFile('https://api-maps.yandex.ru/2.1/?lang=ru_RU', ['position' => \yii\web\View::POS_HEAD]);
jquery стандартно....

вопрос: не работают селекторы jquery внутри ballon,
ВНЕ его все работает прекрасно.
ОШИБОК JS нет
есть идеи?
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: yandex maps ballon и \Yii::$app->view->render('view');

Сообщение an.viktory@gmail.com »

ни каких событий не происходит как будто jquery вообще не установлен
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: yandex maps ballon и \Yii::$app->view->render('view');

Сообщение an.viktory@gmail.com »

ПРИЧИНА!!!
если ajax изменяет DOM, где живёт ссылка, то это получается новая ссылка без событий. После ajax надо заново вешать обработчик, либо вешать на элемент-предок, который не меняется ajax-ом и проверять в обработчике, что сработало на ссылке, либо использовать

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

$(document).on('click', '.read-more', handler). 
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: yandex maps ballon и \Yii::$app->view->render('view');

Сообщение Nex-Otaku »

Ну, чувак, при чём тут Yii вообще, это самые основы.
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: yandex maps ballon и \Yii::$app->view->render('view');

Сообщение an.viktory@gmail.com »

основы основами ... но почему-то никто не ответил мне за сутки...))
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: yandex maps ballon и \Yii::$app->view->render('view');

Сообщение Nex-Otaku »

Ишь ты какой торопливый )
Аватара пользователя
proctoleha
Сообщения: 298
Зарегистрирован: 2016.07.10, 19:00

Re: yandex maps ballon и \Yii::$app->view->render('view');

Сообщение proctoleha »

an.viktory@gmail.com писал(а): 2018.01.11, 15:39 основы основами ... но почему-то никто не ответил мне за сутки...))
Nex-Otaku писал(а): 2018.01.11, 15:00 при чём тут Yii вообще
Вот за что я не люблю линукс, так это за свои кривые, временами, руки
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: yandex maps ballon и \Yii::$app->view->render('view');

Сообщение an.viktory@gmail.com »

разве я не прав?
1. Если вы инжектите view через ajax .
2. Или это происходит само через (как в моем случаем yandex maps api js ).
селекторы Jquery нужно вещать глобально весь документ

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

$(document).on('click',SELECTOR, handler). 
Такой вариант не сработает (даже если POS_READY)

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

$(SELECTOR).on('click', handler). 
От yii тут render view via ajax
Nerf
Сообщения: 780
Зарегистрирован: 2015.01.29, 00:37

Re: yandex maps ballon и \Yii::$app->view->render('view');

Сообщение Nerf »

К yii это не относиться по сути. Элементы, добавленные после навешивания обработчика события, обрабатываться не будут этим обработчиком, это логично. И обработчик можно вешать как угодно: на сам элемент (после того как он есть в DOM), на родителей (в т.ч. document), главное чтобы событие отлавливалось.
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: yandex maps ballon и \Yii::$app->view->render('view');

Сообщение an.viktory@gmail.com »

обработчики я вешал после 100% (просто yandex со своим yandex maps api js) ajax'ит когда ему угодно и поэтому навешивать обработчики после событий yandex maps нецелесообразно. Проще вещать их сразу на весь документ! Это даже на их ветке stackoverflow написано.
Ответить