【发布时间】:2016-04-24 17:33:23
【问题描述】:
我想做的事 我有悬停时打开的下拉菜单,父菜单有自己的登录页面链接。我们不愿意牺牲这种行为,但如果明显会给大触摸设备带来问题。因此,我正在使用 jquery 检测触摸设备,并禁用父菜单单击大于 990px 宽的设备。低于 990 像素的设备被视为移动视图,它会切换到切换。切换和桌面视图之间的这种切换预计也会在屏幕旋转时继续。
发生了什么 菜单链接在首次加载时被禁用并按预期工作。然后我旋转屏幕(从横向到纵向)并按预期查看移动菜单并导航到另一个页面。页面加载后,我再次旋转它(从纵向到横向)并且桌面视图可见,但现在可以单击父链接!
我也想在第二次旋转时阻止此点击事件。 HTML 是标准的 bootstrap 3 导航代码,我的 js 是这样的:
function isTouchDevice() {
return true == ("ontouchstart" in window || window.DocumentTouch && document instanceof DocumentTouch);
}
$(document).ready(function () {
$(window).resize(function () {
var o = $(window).innerWidth();
function isTouchDevice() {
return true == ("ontouchstart" in window || window.DocumentTouch && document instanceof DocumentTouch);
}
if ((isTouchDevice() === true) && (o >= 990)) {
$('.navbar .dropdown > a ').each(function () {
$(this).on("click", function(){
return false
})
})
alert('oi!!')
}
else {
$('.navbar .dropdown > a ').each(function () {
$(this).on("click", function(){
location.href = this.href;
})
});
alert ("bad!") //for debugging purpose, not really needed
}
}).resize();
//the mobile menu clicks events
$('#menu .dropdown > a ').click(function () {
location.href = this.href;
});
});
PS这是一个网站,不是安卓应用。我找到了可以回答此类问题的答案,适用于 Android 应用程序。
更新我的代码的jsfiddle
【问题讨论】:
-
您能在 Snippet 或 JSFiddle 中复制类似的演示吗?
-
不确定是否可以在 jsfiddle 上模拟触摸,但稍后会出现链接。
-
在帖子中添加了 jsfiddle 链接。
标签: javascript jquery css twitter-bootstrap-3