1

いくつかあり、ユーザーがチェックボックスをオンまたはオフcheckbox listsにするたびにそれらを更新する必要があります。一部のリストには、数千の.checkboxes

新しい要素の作成は遅いので、避けたいです。したがって、更新中は、それらを削除する代わりに、要素への参照をスタックに保存します。

コードの抜粋を次に示します。

// Save element to buffer. Each element looks like <div><input type="checkbox" /><label>label here</label></div>
while (checkBoxList.firstChild) {
    var div = checkBoxList.firstChild;
    buffer.push(div);
    checkBoxList.removeChild(div);
}

// elided ...

// Getting the new options...
// For each new option try to pop existing element from buffer or create new one if       buffer has no elements

var div = buffer.pop();
var divExists = div != undefined;
var checkBox = divExists ? div.firstChild : document.createElement('input');
var label = divExists ? div.lastChild : document.createElement('label');

checkBox.id = newId; // set new id
checkBox.name = newName; // set new name
checkBox.value = newValue // set new value

// elided...

// Append updated (or created one) to checkbox list
checkBoxList.appendChild(div);

この手法は正常に機能しIEますが、次の問題が発生します。checkboxesマウスがそれらの上に置かれたかのように、青色で表示されます(see the screenshot at http://postimage.org/image/z6yeckuz5/).

誰かが同様の問題に直面しましたか? なぜこれが起こるのでしょうか?

4

0 に答える 0