WebStorm 期待 $.insertBefore() 的多个参数?
WebStorm expecting multiple arguments for $.insertBefore()?
我有以下代码,目前可以正常工作。它根据 属性 loadOrder
.
将元素插入 objGrid
let $elTileTitle = $('<div/>', { class: 'tileTitle', html: tile.title });
let $elNext;
for (let i = tile.loadOrder; i < objectLength(tiles); i++) {
let $potentialNext = $(`.tile[data-loadorder="${i}"]`);
if ($potentialNext.length > 0) {
$elNext = $potentialNext;
break;
}
}
if (typeof $elNext !== 'undefined') {
$elTile.insertBefore($elNext);
} else {
let $elPrev;
for (let i = tile.loadOrder; i < 0; i--) {
let $potentialPrev = $(`.tile[data-loadorder="${i}"]`);
if ($potentialPrev.length > 0) {
$elPrev = $potentialPrev;
break;
}
}
if (typeof $elPrev !== 'undefined') {
$elTile.insertAfter($elPrev);
} else {
$elTile.appendTo(objGrid);
}
}
如前所述,这似乎运作良好。但是我注意到 IDE 中有一个警告,即 insertBefore()
的参数数量无效。查看文档后,我将该行替换为:
$('#grid').insertBefore($elTile,$elNext);
这表现出奇怪的行为。此代码运行后,$('#grid')
为空。奇怪的是,所有图块都存在于 DOM 中(即,如果我在控制台中键入 $('#tile-store')
,我会得到一个具有所有预期属性的对象),但是我无法在 HTML("Elements" 选项卡)并且 UI 为空白。
有什么明显的我做错了吗?如果需要,我可以提供更多信息
But I noticed a warning in my IDE that insertBefore() had an invalid number of arguments.
你的IDE错了。它错误地应用了 the DOM's insertBefore
to your use of jQuery's insertBefore
的规则。您原来使用 jQuery's 就可以了。 如果你使用的是DOM,你需要给它另一个参数。但它们是完全不同的功能。
我有以下代码,目前可以正常工作。它根据 属性 loadOrder
.
objGrid
let $elTileTitle = $('<div/>', { class: 'tileTitle', html: tile.title });
let $elNext;
for (let i = tile.loadOrder; i < objectLength(tiles); i++) {
let $potentialNext = $(`.tile[data-loadorder="${i}"]`);
if ($potentialNext.length > 0) {
$elNext = $potentialNext;
break;
}
}
if (typeof $elNext !== 'undefined') {
$elTile.insertBefore($elNext);
} else {
let $elPrev;
for (let i = tile.loadOrder; i < 0; i--) {
let $potentialPrev = $(`.tile[data-loadorder="${i}"]`);
if ($potentialPrev.length > 0) {
$elPrev = $potentialPrev;
break;
}
}
if (typeof $elPrev !== 'undefined') {
$elTile.insertAfter($elPrev);
} else {
$elTile.appendTo(objGrid);
}
}
如前所述,这似乎运作良好。但是我注意到 IDE 中有一个警告,即 insertBefore()
的参数数量无效。查看文档后,我将该行替换为:
$('#grid').insertBefore($elTile,$elNext);
这表现出奇怪的行为。此代码运行后,$('#grid')
为空。奇怪的是,所有图块都存在于 DOM 中(即,如果我在控制台中键入 $('#tile-store')
,我会得到一个具有所有预期属性的对象),但是我无法在 HTML("Elements" 选项卡)并且 UI 为空白。
有什么明显的我做错了吗?如果需要,我可以提供更多信息
But I noticed a warning in my IDE that insertBefore() had an invalid number of arguments.
你的IDE错了。它错误地应用了 the DOM's insertBefore
to your use of jQuery's insertBefore
的规则。您原来使用 jQuery's 就可以了。 如果你使用的是DOM,你需要给它另一个参数。但它们是完全不同的功能。