私は現在、必要に応じて動作している次のコードを持っています。プロパティ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が見つかりません。ブランク。
明らかに間違っていますか?必要に応じて詳細情報を提供することができます
その他の質問私はIDEバグについて見たことがあるが、話題にはなっていない、FWIWとは考えられていない。 WebStormがこれを行うときに他の人が同じ質問をすることがあります。 :-) [tag:webstorm]タグを追加したことがわかります。これは良い考えです。おそらくタイトルを「WebStormでinsertBeforeに無効な引数があると教えてくれるのはなぜですか?検索可能性を助けるためにいくつかの... –
良いヒント。完了しました。 –