By
d0ublezer0
В корзине динамически формируется выбор вариантов доставки, из которого должен выбираться пункт выдачи. но событие клика на варианте доставки не срабатывает
для проверки работы нужно что-то положить в корзину, например https://www.road.media/avtomagnitoly/ford/5861-detail
собственно, корзина: https://www.road.media/cart
После клика на первом варианте (пункт выдачи СДЕК), должен раскрыться список пунктов выдачи (город у каждого будет свой, определяется автоматически по России):
За раскрытие списка и обработку дальнейшего выбора пункта выдачи отвечает файл https://www.road.media/plugins/vmshipment/transportadoras/cdek_script.js
Выглядит он так:
jQuery(document).ready(function ($) {
$('.cdek_shipment').on("click", function () {
var $ship_id = $(this).attr("data-id");
var $ship_pvz = $(this).attr("data-pvz");
var $ship_map = $(this).attr("data-map");
console.log('Выбран вариант доставки');
$(this).first(".cdek_outpost_list").slideToggle();
});
var $notator = $("#customer_note_field");
var $pvz_map = $("#map");
$(".cdek_outpost_list input").on("change", function () {
var $pvz = $(this);
console.log('PVZ выбран');
$notator.empty().append("Заберу по адресу:" + $pvz.attr("data-address"));
if ($pvz_map.length > 0) { // карта существует, предполагаем что можем выводить в нее
console.log("map exists");
}
});
});
.cdek_shipment создаётся другим скриптом уже после загрузки страницы, я на это повлиять не могу.
Более того, каждый раз при смене города, блок с вариантами доставки создаётся заново.
Где я ошибся? Помогите разобраться, пожалуйста.
UPD:
Нашел как перенавесить событие. теперь другой вопрос
$("#ajaxshipping").on("click", '.cdek_shipment', function () {
// как тут получить объект .cdek_shipment для манипуляций?
)};