3

我正在尝试将工具提示添加到独立的 SVG 文件,但它返回以下错误:

TypeError: invalid 'in' operand style
[Break On This Error]   

if ( name in style ) {

对于以下 jquery-2.0.0 函数:

// return a css property mapped to a potentially vendor prefixed property
function vendorPropName( style, name ) {

    // shortcut for names that are not vendor prefixed
    if ( name in style ) {
        return name;
    }

    // check for vendor prefixed names
    var capName = name.charAt(0).toUpperCase() + name.slice(1),
        origName = name,
        i = cssPrefixes.length;

    while ( i-- ) {
        name = cssPrefixes[ i ] + capName;
        if ( name in style ) {
            return name;
        }
    }

    return origName;
}

如果我通过 HTML 页面呈现 svg 文件,它工作正常。但我需要它作为纯 SVG 工作,但无法做到这一点。

这是用HTML(有效)和SVG(无效)表示的同一页面。工具提示插件称为 tooltipster(由 Caleb Jacob 开发)。

编辑:似乎问题陈述不正确。这是来自 keith-wood.name 的相关引用:

SVG DOM 与设计 jQuery 的 HTML DOM 不同。特别是,任何可以动画的属性都存储为对象而不是纯字符串。这包括类属性。因此,与类一起使用的 jQuery 函数在 SVG 节点上不起作用。

可以在 Internet 上找到一些对原始 jQuery 版本的修改,试图解决这个问题,但它们反过来不适用于最新版本的 jQuery 插件。

我不确定这是否可以回答问题。

4

1 回答 1

1

当我将 jQuery 降级到 1.9.1 版时,我遇到了 IE10 的这个问题,并且刚刚解决了。 http://code.jquery.com/jquery-1.9.1.min.js

于 2013-11-28T11:34:25.390 回答