【发布时间】:2014-08-23 23:55:04
【问题描述】:
我在网上遇到了这个问题的各种解决方案。
基本上,我发现必须按住 ctrl 有点俗气,我希望选择列表只选择我单击的任何内容并将其添加到当前选定的项目中。
我已经得到了这个代码:
$("select[multiple] option").mousedown(function () {
var $self = $(this);
if ($self.attr("selected")) {
$self.removeAttr("selected", "");
}
else {
$self.attr("selected", "selected");
}
return false;
});
元素:
<select multiple id="WOStatusKey" name="WOStatusKey">
<option value="1">Created</option>
<option value="2">In Process</option>
<!-- etc. (about 20 of these) -->
</select>
它可以正常工作,但有一个例外:任何时候选择/取消选择不在列表顶部的东西(您必须滚动才能看到它)然后在您选择它后它会弹回顶部。我已经玩了一点,但想不出任何办法来防止这种行为。此外,我还看到了解决此问题的其他几个解决方案,尽管没有任何一个有效或运作良好。
我只需要它在 Chrome 中工作。此外,我对使用选择列表的任何替代解决方案不感兴趣。
感谢您的帮助,非常感谢。
【问题讨论】:
-
你可以为此做一个小提琴,以便其他人也可以试验你的代码吗?
-
什么浏览器?在 chrome 中看不到问题
-
janaspage:在您的链接上,向下滚动并单击一个选项。选择后,选择框会自动将位置重置为最顶部(就像您一直向上滚动一样)。 aa333:jsfiddle.net/h5Sw2
标签: javascript jquery html