这是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
,则此函数会被调用两次。那是为什么?
答案 0 :(得分:1)
如果事件类型为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();
});