【问题标题】:Disable jQuery SnapPoint for tablet/mobile devices禁用平板电脑/移动设备的 jQuery SnapPoint
【发布时间】:2013-06-07 02:54:15
【问题描述】:

我对这个有点难过。

我将如何为手机/平板电脑(786px)打开它?

Github:
https://github.com/robspangler/jquery-snappoint

演示:
http://robspangler.com/git/jquery-snappoint/demo/demo.html

我们将不胜感激。

【问题讨论】:

  • 我找到了 enquire.js(Javascript 的媒体查询)......看起来我需要在 query-snappoint 函数中添加一个破坏函数......同样,任何见解都会有所帮助。 .. 谢谢

标签: destroy enquire.js


【解决方案1】:

您基本上要求的是一种撤消相关插件所做的任何事情的方法。在查询中翻译为:

enquire.register("(min-width:768px)", {
    match : function() {
        //apply the plugin
    },
    unmatch : function() {
        //undo whatever the plugin did
    }
}, true);

最后的true 告诉inquiry 始终将其视为无能力浏览器的匹配项。这样,旧的 IE 等将始终获得桌面版本,而其他人的行为正常。请参阅此处的“移动优先”部分:http://wicky.nillia.ms/enquire.js/#delving-deeper 了解更多信息

所以,看看那个插件,它并没有提供一个 API 来关闭/撤销它的行为(jQuery 插件的一个常见主题)。值得庆幸的是,它似乎唯一做的就是为窗口滚动事件附加一个侦听器。所以你应该能够做到这一点:

enquire.register("(min-width:768px)", {
    match : function() {
        $(".whatever").snapPoint();
    },
    unmatch : function() {
        $(window).off("resize");
    }
}, true);

注意:有问题的插件没有命名它附加的事件处理程序,所以我们不得不有点笨拙并关闭所有调整大小事件处理程序。这最终意味着我们在这里所做的事情可能会影响其他插件的行为。

如果由于某种原因我的建议不起作用(并且根据上面的注释),您应该考虑向插件作者提出问题:

  1. 提供一种机制来撤销其行为
  2. 命名空间事件处理程序,因此可以在不影响其他处理程序的情况下删除它们。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-20
    • 1970-01-01
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    相关资源
    最近更新 更多