0

好的,这让我很烦,我有一个网页上有一大堆 svg(svg JQuery 插件),我需要浏览器专注于某些(水平),所以我做了一个简单的功能达到我的目的:

function adjustWindowPos(svg){
    var left = svg.scrollLeft();
    $(document).scrollLeft(left);
}

svg对象只是我们通过的一个对象(我们在执行此操作之前绘制和拉屎,所以它被渲染):

$("#someDivID").svg('get');

我昨晚测试了这个,一切正常,今天早上我开始工作,它在萤火虫中抛出一个错误说:

类型错误:svg.scrollLeft 不是函数

我意识到它找不到该函数,因为该对象是一个 SVG 包装器,而不是一个 JQuery 对象……但它昨天工作了。这就是我没有得到的(很多东西,今天没有咖啡)。

4

1 回答 1

0

您需要创建将包含 svg DOM 元素的 jQuery 对象,即您正在寻找的 jQuery 包装器。您可以使用$jQuery 函数以多种方式执行此操作:

  • 将 jQuery 选择器字符串传递给它:$('jquery selector');
  • 将 DOM 对象传递给它;
  • 从已经存在的 jQuery 对象中获取它,如果你有的话;

让我假设你有一个 id 选择器:

var svg = '#id_of_the_svg_element' 

function adjustWindowPos(svg){
    var $svg = $(svg);             // now this is the jQuery object
    var left = $svg.offset().left; // this is its horizontal position relative to the document
    $(document).scrollLeft(left);
}
于 2012-08-22T10:16:23.320 回答