javascript - 当 Eric Hynds 的带有 JQuery Multiselect UI 的选择框动态更新时自动选择第一个选项

标签 javascript jquery jquery-ui server-sent-events

我使用 http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/ 的 JQuery UI 多选插件将元素动态附加到选择框

//Make filter cars multiselect
$("#cars_filter").multiselect({noneSelectedText:'Select cars'});

function populateCarfilter(){
    var opts="<option value=''>Select cars</option>";
    $.each(markers, function(idx, mar){
      if(mar.getVisible() && mar.get("car"))
     opts+="<option value='" + mar.get("id") + "'>" + mar.get("driver") + " - " + mar.get("car") + "</option>";
    });

    if($("#cars_filter").html()!=opts){
      var id = $("#cars_filter").val()
      $("#cars_filter").html(opts);
      $("#cars_filter").val(id);
      $("#cars_filter").multiselect('refresh');
    }    
}

populateCarfilter(); //This gets called every 2 secs automatically by SSE (server sent events)

现在,我面临一个奇怪的问题。每次更新选择框时,都会自动选择选择框中的第一个选项。有什么办法可以解决这个问题吗?

谢谢

最佳答案

除非您向元素添加 multiple 属性,否则浏览器将自动选择第一个选项。

在你的 jQuery MultiSelect UI Widget javascript 源文件中看到,他们已经实现了以下

// browsers automatically select the first option
// by default with single selects
if( isSelected && !o.multiple ){
    labelClasses.push( 'ui-state-active' );
   }

关于javascript - 当 Eric Hynds 的带有 JQuery Multiselect UI 的选择框动态更新时自动选择第一个选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12619888/

相关文章:

javascript - 如何对多个元素使用相同的 jQuery 滚动功能

javascript - 访问函数/对象中的 $ ('selector' ).data

javascript - 使用 jQuery(this).next() 显示/隐藏菜单中的下一个嵌套 UL

javascript - 使用 jquery 或纯 javascript 复制 dom 元素的样式

javascript - 在父级之外切换 Javascript

JavaScript 小部件不适用于我的网站

javascript - Jquery在 'X'滚动的视口(viewport)高度量后添加CSS类

jquery - div 在 IE8 中没有扩展到新内容

javascript - jquery-ui可排序取消

javascript - 替代 jquery ui