jQuery-UI不能识别html5的隐藏属性

jQuery-UI doesn't recognize HTML5's hidden attribute

本文关键字:隐藏 属性 html5 不能 识别 jQuery-UI      更新时间:2023-09-26

使用纯Javascript,使用HTML5的隐藏属性很容易隐藏选择菜单选项。但是当我想使用jQuery-UI样式化选择菜单时,隐藏属性被忽略。例如,定义两个选择菜单:

<select id="one">
  <option>option 1</option>
  <option>option 2</option>
  <option hidden>hidden option</option>
  <option>option 4</option>
</select>
<select id="two">
  <option>option 1</option>
  <option>option 2</option>
  <option hidden>hidden option</option>
  <option>option 4</option>
</select> 

Javascript/jQuery:

$(function(){            
  $('#one').selectmenu();
}); 

当您运行这个示例时,第三项隐藏在第二个选择菜单中,而不是在第一个选择菜单中。看起来jQuery-UI已经禁用了隐藏属性。看到

jsFiddle

作为实例。是我做错了什么,还是有一个bug在jQuery-UI?

对于这个问题,我的解决方法是删除它们,

$(function(){            
    $('#one option[hidden]').remove();
    $('#one').selectmenu();
});  

jsfiddle

原来这是jQuery-UI的一个bug。我在GitHub上开了一张票,问题在24小时内解决了。