Javascript iPhone:span-click-donds';我工作不好
当我想触按“箭头”以下拉菜单导航的第二级时,出现问题。 当我触摸箭头时,结果和我触摸页面时一样(例如哲学)。 箭头有css-->光标:指针; 在桌面版上,它工作正常 我使用iphone5。如果我触摸箭头并保持1秒钟,那么它工作正常。但如果我只碰它一次,它就会把我带到一页Javascript iPhone:span-click-donds';我工作不好,javascript,jquery,html,ios,iphone,Javascript,Jquery,Html,Ios,Iphone,当我想触按“箭头”以下拉菜单导航的第二级时,出现问题。 当我触摸箭头时,结果和我触摸页面时一样(例如哲学)。 箭头有css-->光标:指针; 在桌面版上,它工作正常 我使用iphone5。如果我触摸箭头并保持1秒钟,那么它工作正常。但如果我只碰它一次,它就会把我带到一页 //用于添加箭头的第一个js $(“.menu项有子项”)。每个(函数(){ $(this.prepend(“”); }); $(“.main menu.menu li”).first().addClass(“第一页项”);
//用于添加箭头的第一个js
$(“.menu项有子项”)。每个(函数(){
$(this.prepend(“”);
});
$(“.main menu.menu li”).first().addClass(“第一页项”);
//dropwdown子菜单的第二个js
$('.arrow')。打开(“单击”,函数(e){
if($(this).hasClass('opened')){
$(this.removeClass('opened');
$(this).parent().find('.sub菜单').slideToggle();
}否则{
$(this.addClass('opened');
$(this).parent().find('.sub菜单').slideToggle();
}
e、 停止传播();
});代码>
-
-
-
由于iPhone是一款触摸设备,您应该使用触摸事件而不是点击事件
因此,你应该:
检测设备是否为移动设备
根据设备类型正确操作
代码如下:
function goArrow(e) {
if ($(this).hasClass('opened')) {
$(this).removeClass('opened');
$(this).parent().find('.sub-menu').slideToggle();
} else {
$(this).addClass('opened');
$(this).parent().find('.sub-menu').slideToggle();
}
e.stopPropagation();
}
var TOUCH = "ontouchstart" in window;
if (TOUCH) $('.arrow').on("touchstart", goArrow);
else $('.arrow').on("click", goArrow);