这是我的代码,以防发生touchend
事件:
$('body').on('click touchend', '.typeSelect', function(){
var Classes = $(this).attr('class').split(" ");
var width1 = $(this).width();
$('.active').removeClass('active');
$(this).addClass('active');
$('.typeDropDownList').hide();
$('.'+Classes[0]+'List').css({'width' : width1+12}).toggle();
});
如果事件是
click
,则一切正常,但如果事件是touchend
,则此函数将被调用两次。这是为什么? 最佳答案
如果事件类型为touchend,请关闭点击
$('body').on('click touchend', '.typeSelect', function(e){
e.stopPropagation();
e.preventDefault();
if(e.type == 'touchend'){
$(this).off('click');
}
var Classes = $(this).attr('class').split(" ");
var width1 = $(this).width();
$('.active').removeClass('active');
$(this).addClass('active');
$('.typeDropDownList').hide();
$('.'+Classes[0]+'List').css({'width' : width1+12}).toggle();
});
关于javascript - touchend事件被触发两次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47993515/