检测jQuery UI .position()是否支持`offset`选项的推荐方法是什么?

时间:2013-06-13 06:36:48

标签: jquery jquery-ui

在jQuery UI 1.10中删除了此功能:

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

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

2 个答案:

答案 0 :(得分:0)

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

我们的想法是创建两个元素并在其上使用.position,并在其上添加新语法(可能需要将其包装在try catch块中。如果抛出异常,则很可能不支持它。如果没有抛出异常,你可以检查元素是否具有预期的位置,如果是,则支持新的语法,如果不支持那么它是旧的语法。并且你可以再次检查旧语法。

在测试之后,您将删除元素。

我希望解释清楚,如果不随意问。

答案 1 :(得分:0)

鉴于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/

这不是我原来问题的答案,因此我不会将其标记为“已接受”。