3

我正在使用带有jQ​​uery.msDropDown<select>的选项菜单,但由于某种原因,在使用 javascript/jquery设置属性后,DOM 不会更新。select.selectedIndex

在我单击下拉菜单然后单击页面(关闭它)后,它会使用正确的 selectedIndex 进行更新。

我在这样的循环中更新 selectedIndex :

    $.fn.[unrelated function].after = function( opts, curr, next, fwd ) {
        var $sel = document.getElementById('selectElem');
        for(var i = 0, j = $sel.options.length; i < j; ++i) {
            if(($sel.options[i].value).substr(1) == next.title) {
                //I have tried various ways here
                $sel.selectedIndex = i;
                //$('#selectElem').prop("selectedIndex",i);
                break;
            }
        }
    };

PS似乎没有任何文档,msDropDown否则我会尝试确定什么事件会触发框的更新。

4

2 回答 2

9

尝试这个 -

var oHandler = $('#selectElem').msDropDown().data("dd");
if(oHandler) {
    oHandler.set("selectedIndex", i);
}
于 2013-07-16T15:50:55.250 回答
0

这是完整的代码:

$(document).ready(function() {
    $("#Country").msDropdown();


    var country_code = 'in';
    var i = 0;
    var indexNumber = 0;
    $("#Country option").each(function(){
        if($(this).val() == country_code){
            indexNumber = i;
        }
        i++;
    });
    var oHandler = $('#Country').msDropDown().data("dd");
    if(oHandler) {
        oHandler.set("selectedIndex", indexNumber);
    }

});
于 2019-08-20T07:19:11.707 回答