【问题标题】:disable jquery function if larger than mobile screen size如果大于手机屏幕尺寸,则禁用 jquery 功能
【发布时间】:2019-10-13 04:57:05
【问题描述】:

我正在使用 jquery,检查窗口宽度并根据屏幕大小触发一个函数。到目前为止一切正常。我的问题是,如果用户在平板电脑/桌面上启动并将视口缩小到我希望功能触发的大小,它应该可以正常工作,但是当他们将屏幕尺寸恢复到平板电脑/桌面时,功能仍然运行,这是我不想要的。有没有办法禁用或终止该功能?

jquery:

    $(document.ready(function(){

 $(window).on("resize", function (e) {
        checkForMobile();
    });

    checkForMobile();

    function checkForMobile() {
        var newWindowWidth = $(window).width();
        if (newWindowWidth < 768) {
            //append nav item to bottom of list mobile and active
            $($threePanelNav).click(function () {
                var $this = $(this);
                $this.appendTo($this.parent());
            });
        } else {
            return false;
        }
    }
 });

【问题讨论】:

  • 逻辑是倒退的。改为在点击处理程序中进行宽度检查
  • @charlietfl 所以如果点击事件中的 else 语句?...你有一个例子吗?将不胜感激..感谢您的建议:)

标签: javascript jquery


【解决方案1】:

如果您使用的是 .net 框架,那么在后端代码中,您可以使用以下代码获取设备类型 - (用 VB.Net/C# 编写的代码,您可以根据需要进行转换)

“IsMobileBrowser”函​​数检测设备是否为移动设备。

C#:-

private string[] mobileDevices = new string[] { "iphone", "ppc", "windows ce", "blackberry", "opera mini", "mobile", "palm", "portable", "opera mobi", "mobi" };

    public bool IsMobileBrowser(HttpRequest Request)
    {
        bool isMobile = false;
        var strUserAgent = Request.UserAgent.ToString().ToLower();
        if (!IsNothing(strUserAgent))
        {
            if ((Request.Browser.IsMobileDevice | mobileDevices.Any(n => strUserAgent.Contains(n))))
                isMobile = true;
        }

        return isMobile;
    }

VB.Net:-

Dim mobileDevices As String() = New String() {
"iphone", "ppc", "windows ce", "blackberry",
"opera mini", "mobile", "palm", "portable", "opera mobi", "mobi"}

Public Function IsMobileBrowser(ByVal Request As HttpRequest) As Boolean
Dim isMobile As Boolean = False
Dim strUserAgent = Request.UserAgent.ToString().ToLower()
If Not IsNothing(strUserAgent) Then
If (Request.Browser.IsMobileDevice Or
mobileDevices.Any(Function(n) strUserAgent.Contains(n))) Then
isMobile = True
End If
End If
Return isMobile
End Function

那么 -

如果 IsMobileBrowser(Request) 返回 true,则它是移动设备,您可以执行此操作。

这里的Request属于HTTP请求对象。

希望这会对你有所帮助。

【讨论】:

  • 问题未标记为 .NET。如果我使用桌面但显示较小的窗口也无济于事
猜你喜欢
  • 2013-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多