События касания / нажатия iOS 7, вызывающие изменение размера swiper
Я пытался отладить эту проблему на iOS 7, и это сводит меня с ума. Я использую iDangerous Swiper ( http://www.idangero.us/swiper/get-started/). С помощью нажимаемых кнопок на слайде, чтобы перейти к следующему слайду. Существует также AJAX-отправка при нажатии этой кнопки. Я пытался использовать событие touchstart, чтобы сделать нажатие более мобильным. Который был успешным, но на iphone 6 (iOS 7) swiper мерцает / изменяет размеры перед перемещением первого слайда. На всех других браузерах, которые я тестировал, это нормально.
Для отладки я попытался отложить все события, которые запускаются, на несколько секунд, чтобы определить, какое из них вызывает, с помощью setTimeout. Когда я задерживаю события, мерцание / изменение размера не происходит.
У меня нет идей о том, что может быть причиной этого или как его отладить.
Триггеры JQuery являются следующими:
var clickHandler = ('ontouchstart' in document.documentElement ? "touchstart" : "click");
// make click more reliable on mobile
$(".swiper-slide fieldset.rating > label").bind(clickHandler, function(e) {
setTimeout(function() {
$(this).prev('input').click()
.siblings('input').attr('checked',false)
.end()
.attr('checked', true);
return false;
}, 0); // end timeout
});
// Advance on click
//$('.swiper-slide input:radio[name^="number"]:not(.other_text)').on('click', function(e){
$('.swiper-slide input:radio[name^="number"],a.other_done').on('click', function(e){
//$(this).next('label').html('<i class="ss-icon1 i-smile1satsum-survey"></i>');
setTimeout(function () {
//alert('about to trigger move');
mySwiper.swipeNext();
}, 200);
});
$(document).on('change', 'fieldset.rating', function (event) {
setTimeout(function () {
//alert('about to post data');
console.log('posting data');
val = $(this).children('input:checked').val();
name = $(this).children('input:checked').attr('name');
base_name = name.split("[data]")[0];
id_name = base_name + "[id]";
id = $('input[name="' + id_name + '"]').val();
if (id > 0) {
json_string = "{ \"" + name + "\": \"" + val + "\", \"" + id_name + "\": \"" + id + "\" }";
} else {
json_string = "{ \"" + name + "\": \"" + val + "\" }";
};
json_object = JSON.parse(json_string);
url = $(location).attr('href');
number_url = url.split("/play")[0];
// Change thankyou text
if (base_name == "number[recom]") {
if (val == 5) {
$('.custom_thankyou').removeClass("ty_active");
$('#custom_thankyou_p').addClass("ty_active");
} else if (val == 4) {
$('.custom_thankyou').removeClass("ty_active");
$('#custom_thankyou_n').addClass("ty_active");
} else if (val < 4) {
$('.custom_thankyou').removeClass("ty_active");
$('#custom_thankyou_d').addClass("ty_active");
}
}
$.ajax({
type: "PUT",
url: number_url,
dataType: "json",
data: json_object
//})
//.done(function( msg ) {
//alert( "Data Saved: " + msg );
});
},400); // end settimeout
});
Я также попытался исправить "курсор: указатель", но не повезло. Кто-нибудь, пожалуйста, дайте мне несколько идей!