Клуб пользователей блока «Поделиться»

Укажите, где сказано что class ya-share2 автоматом инициализирует Ya.share2

epishev2
22 августа 2017, 21:02

И если вы еще и программным способом обрабатываете блок с этим классом то увас будет два экхемпляра логики то есть при клике на кнопки соцсетей у вас будут выскакивать два поп-апа.

Уточните, что если не указывать в разметке class ya-share2, и инициализировать через JS API, тот class ya-share2 будет добавлен в DOM.

Проблема: обновить title  и url при наличии class ya-share2. Если инициализировать еще через Ya.share2 то получится две копии объекта и выскакивать по два попапа.

5 комментариев
 Об этом сказано в самом начале первой страницы документации.


Класс `.ya-share2` активирует автоматическую инициализацию блока. Если вам нужно управлять состоянием блока, вы используете программную инициализацию и не указыватете класс `.ya-share2`.
sameoldmadness,
 Разумеется сказано, однако не указано что этот класс добавляется при инициализации через кастомный айдишник/класс.


И самое важное что нет практически способа `updateContent` url/title при инициализации через дефолтный класс `.ya-share2`захардкоденный в разметке. То есть это годится для мультистраничных сайтов но для SPA/PWA никак не подойдет—только через кастомный айди и JS API. Сенкс.
Обновлено 22 августа 2017, 22:01
А можно еще раз на пальцах разжевать, как избежать двойного попапа, если я сначала создаю панельку кнопок методом Ya.share2(el,....) , а потом её редактирую точно так же Ya.share2(el,....). Класс ya-share2 я нигде руками не добавляю
Обновлено 4 февраля, 21:51
djdance1,
Метод share2 создаёт, а не редактирует блок.

Если требуется изменить параметры, нужно удалить старый блок с помощью метода  destroy и создать новый.
Обновлено 5 февраля, 09:37
sameoldmadness,
спасибо, починил. Немного жалко, что нельзя сделать Ya.destroy(el), потому что приходится умножать сущности и пробрасывать созданные объекты через голову.