在没有CMD/CTRL的情况下,更改单击更改时选择[多个]的行为

Change behavior of select[multiple] for single-click changes without CMD/CTRL

本文关键字:选择 多个 单击 CTRL 情况下 CMD      更新时间:2023-09-26

我正在尝试改变a的默认行为,以便在其选项上单击一下即可改变这些选项的选定状态。

换句话说,我想删除按住shift/ctrl进行多次选择的不直观要求。

我正在尝试使用jQuery:

jQuery('select[multiple] option').each(function() {
var $this = jQuery(this);
 if ($this.is(':selected')) {
   $this.click(function(e) {
        e.preventDefault();
        $this.selected = 'false';
   });
 } else {
   $this.click(function(e) {
        e.preventDefault();
        $this.selected = 'true';
   });
 }
});

但它不起作用。什么好主意吗?

试试这个答案

你不能依赖"click"事件,则"select"的行为。它的"选项"有点不同,你必须使用鼠标事件来实现你的目标。

2021年

编辑:

处理这个问题的最好方法实际上是使用复选框<input type="checkbox">,因为浏览器(移动+桌面)会原生地为你处理这个问题,而不需要你试图用一个丑陋的脚本来破解它。