【问题标题】:What is the recommended method to detect if jQuery UI .position() supports the `offset` option?检测 jQuery UI .position() 是否支持 `offset` 选项的推荐方法是什么?
【发布时间】:2013-06-13 06:36:48
【问题描述】:

此功能在 jQuery UI 1.10 中被移除:

http://jqueryui.com/upgrade-guide/1.9/#deprecated-offset-option-merged-into-my-and-at

如何使用功能检测检查新语法(而不是检查 jQuery UI 版本号 >= 1.10)?

【问题讨论】:

    标签: jquery jquery-ui


    【解决方案1】:

    我现在没有时间创建一个工作示例。但如果需要,我会稍后提交。

    这个想法是创建两个元素并在其上使用.position,并在其上使用新语法(可能您需要将其包装在trycatch 块中)。如果抛出异常,则很可能不支持它。如果没有抛出异常,您可以检查元素是否具有预期的位置,如果是,则支持新语法,如果不支持,则为旧语法。您可以再次检查旧语法。

    测试后,您将删除元素。

    我希望解释清楚,如果没有,请随时询问。

    【讨论】:

    • 是的,已经很清楚了,谢谢。我希望有一个像测试 $.ui.something 这样的单行代码,所以我等了几天,然后才最终接受。
    • 好的,我终于采用了另一种解决方案,但如果您发布代码,我会“接受”您的答案。
    【解决方案2】:

    鉴于 jQuery UI 1.10 删除了许多其他功能(在 1.9 中标记为已弃用,http://jqueryui.com/upgrade-guide/1.9/),我最终决定使用版本检查而不是 - 可能很昂贵 - 功能检测:

    var SUPPORTS = {
        // http://jqueryui.com/upgrade-guide/1.9/#deprecated-offset-option-merged-into-my-and-at
        positionMyOffset: isVersionAtLeast($.ui.version, 1, 9),
        ...
    };
    

    使用此比较功能:http://jsfiddle.net/mar10/FjSAN/

    这不是我最初问题的答案,所以我不会将其标记为“已接受”。

    【讨论】:

      猜你喜欢
      • 2017-02-06
      • 2023-04-03
      • 1970-01-01
      • 2011-06-16
      • 2012-09-26
      • 1970-01-01
      • 2013-12-02
      • 2010-10-19
      • 1970-01-01
      相关资源
      最近更新 更多