响应式网站在pc上给一个元素定义了hover事件,在手机端点击的时候被触发了?

发布于 2022-09-06 00:34:52 字数 420 浏览 8 评论 0

<div class="dropdown">
  <a data-toggle="dropdown" href="#">xxx</a>
  <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
    ...
  </ul>
</div>
$('.dropdown').hover(function() {
   $(this).hasClass('open');
},function(){
   $(this).removeClass('open');
})

把boostrap的dropdown插件改成hover触发,在手机端点击时无法展开,发现是hover事件影响了,我该如何让这段代码在手机上不执行,只在pc上执行呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

菊凝晚露 2022-09-13 00:34:52

判断客户端是pc还是手机

function IsPC() {
    var userAgentInfo = navigator.userAgent;
    var Agents = ["Android", "iPhone",
                "SymbianOS", "Windows Phone",
                "iPad", "iPod"];
    var flag = true;
    for (var v = 0; v < Agents.length; v++) {
        if (userAgentInfo.indexOf(Agents[v]) > 0) {
            flag = false;
            break;
        }
    }
    return flag;
}
 
var flag = IsPC(); //true为PC端,false为手机端
-残月青衣踏尘吟 2022-09-13 00:34:52

通过 http 头信息的方法来判断

if (Request.Headers["user-agent"] != null && Request.Headers["user-agent"].ToLower().ToString().IndexOf("mozilla") != -1) {
$('.dropdown').hover(function() {
   $(this).hasClass('open');
},function(){
   $(this).removeClass('open');
})
}
七色彩虹 2022-09-13 00:34:52

$(this).hasClass('open');
不应该是
$(this).addClass('open');
吗?

书信已泛黄 2022-09-13 00:34:52

通过ua判断是pc还是手机

懒的傷心 2022-09-13 00:34:52

替换成mouseover事件试试?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文