1

我在下拉列表中有 10 个项目,当我打开下拉列表时只想显示前 5 个项目,其余项目应保持滚动状态。

我有以下代码来控制JS.

$(function(){
  $("#myList").click(function(){
    $(this).attr('size', '5');
  });
});

HTML在...中设置以下内容

<select size="5">
  <option value=""></option>
  ...
</select>

将使下拉菜单始终默认显示 5 个项目,并且浏览器可能会以自己的方式处理此问题,因此我想通过JS.

这样做的问题是它打开了 5 个项目,但没有像正常下拉菜单那样自动关闭,直到页面刷新(显然)。请指教。

4

2 回答 2

3

您可以更改列表以显示多个项目,然后仅在删除悬停时显示所选项目:

$(document).ready(function(){

$("#mylist").hover(function(){

$(this).attr('size', '5');
},function(){
 $(this).removeAttr("size");   
});

});​

-- 看演示 --

于 2012-05-10T09:48:41.780 回答
0

但是,接受的解决方案工作得很好,但仅适用于1.9之前的 jQuery 版本,因为此后该版本hover已弃用

但是,如果您不想切换到较新版本,则可以使用jQuery migrate 插件使用 makehover()和其他不推荐使用的功能。

jQuery更高版本ie v1.9 +的替代解决方案

$(function(){
  $("#myList").on({
    mousedown: function(){
      $(this).attr('size', '5');
    },

    mouseleave: function(){
      $(this).removeAttr('size');
    }
  });
});

这是一个有效的演示

于 2015-10-08T07:10:47.047 回答