События касания / нажатия 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
});

Я также попытался исправить "курсор: указатель", но не повезло. Кто-нибудь, пожалуйста, дайте мне несколько идей!

0 ответов

Другие вопросы по тегам