我一直在尝试在 iOS 7 上调试这个问题,这让我发疯。我使用 iDangerous Swiper ( http://www.idangero.us/swiper/get-started/ )。使用幻灯片中的可点击按钮前进到下一张幻灯片。在该按钮单击时还有一个 AJAX 提交。我一直在尝试使用 touchstart 事件来使移动设备上的点击更加可靠。这已经成功,但在 iphone 6 (iOS 7) 上,滑动器会在第一张幻灯片移动之前闪烁/调整大小。在我测试过的所有其他浏览器上都很好。
为了调试,我尝试使用 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
});
我也尝试过“光标:指针”修复,但没有运气。有人请给我一些想法!