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 для манипуляций?
)};
Question
Great Rash
Не знаю как в других браузерах, но в Chrome событие keydown на селекте срабатывает через раз. Вот пример. Что надо сделать, чтоб увидеть баг:
1) добиться чтобы селект получил фокус (табом или мышой встать в него)
2) нажимаем Enter (выпадающее меню будет открываться/закрываться)
3) событие будет всплывать только когда меню открывается, но не когда закрывается
Вопрос: как можно это победить, как отловить событие в обоих случаях?
Link to comment
Share on other sites
14 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.