0

我有一个选择下拉菜单,每次刷新页面时,我都必须重新填充该选择下拉菜单。这导致内存泄漏。这是任何有助于重构代码的代码。我还尝试创建另一种方法并在此方法之前调用它,另一种方法将清空选项数组并使其为空。那对我没有帮助。

    var option = $(document.createElement("option"));
    option.attr("value", List.id);
    option.text(List.name);
        if(List.name.length > maxSize) {
            maxSize = List.name.length;
        }
        this.options.push(option);

        //Mark the currently displayed list as the selected option
        if (activeListId > 0) {
            if (activeListId == List.id) {
                option.attr("selected", true);
            }
        }
    }

    Toolbar.ListSelect.append(this.options);
4

2 回答 2

0

如果您包含更多周围的代码,这将非常有帮助,这样我们就可以知道什么是什么,但鉴于目前的情况,这是我最好的尝试。

// Reference box
var $box = $('#id-of-select-box');

// Clear select box
$box.empty();

// START LOOP

// Create new option
var $option = $('<option value="'+List.id+'">"'+List.name+'"</option>');

// Append option to select box
$box.append($option);

// END LOOP

//Mark the currently displayed list as the selected option
if (activeListId > 0) {
    $box.val(activeListId);
}
于 2013-06-13T14:40:09.620 回答
0

我建议创建一个新元素,然后在使用 slice 超过 maxSize 时剪切提供的名称)。稍后,如果 activeListId 和 List.id 匹配,我们添加参数“selected”。稍后我们将新选项附加到 Toolbar.ListSelect (我认为它是元素

var option = jQuery("<option />").attr('value', List.id);
var optionName = List.name.slice(maxSize);
option.text(optionName);
if ( activeListId && activeListId == List.id)
    option.attr("selected", true);
option.appendTo(Toolbar.ListSelect)
于 2013-06-13T14:35:17.917 回答