首页 > 解决方案 > Javascript 无法在数字“100”上创建属性“guid”

问题描述

我正在尝试通过单击链接来触发scroll对元素的操作。canvas

以下是我一直在关注的示例:https ://developer.mozilla.org/en-US/docs/Web/API/Window/scroll


JS:

$('#zoom-in-button').click(function() {
    $('.vis-network canvas').scroll(0, 100);
    // $('.vis-network canvas').scroll({top: 1000});
});

HTML:

<a id="zoom-in-button" class="nav-button">
    +
</a>
<div class="vis-network">
    <canvas style="overflow:auto">
</div>

错误:

jquery.min.js:2 Uncaught TypeError: Cannot create property 'guid' on number '100'
    at Object.add (jquery.min.js:2)

标签: javascriptjquery

解决方案


首先,$('.vis-network canvas')既不是window也不是HTMLElement——它是 jQuery 对象。虽然这个对象有scroll方法(在它的原型链中),但它做了一些完全不同的事情:

这种方法是.on( "scroll", handler )第一变体和第二变体以及.trigger( "scroll" )第三变体的捷径。

请注意,第三种情况不允许您参数化事件。

你可能正在寻找这个:

var canvas = $('.vis-network canvas')[0];
canvas.scrollLeft = 0;
canvas.scrollTop = 100;

...但是您尝试滚动子项(内容)而不是父项看起来很奇怪。也许您实际上应该瞄准$('.vis-network')


推荐阅读