Jquery 在JS中选择多个选项

Jquery 在JS中选择多个选项,jquery,multi-select,selectable,Jquery,Multi Select,Selectable,我有以下看法: <ul id="entries_list"> <li>a</li> <li>b</li> <li>c</li> </ul> 但问题是我必须使用自定义类“custom_selected”。在上述情况下,它可以通过shift正确选择,但不会取消选择。Jquery添加自己的类。是否可以覆盖默认类?如果我可以使用自定义类,那就更容易了 编辑: 我有这个,但它工作不正确: 编辑2: 我真

我有以下看法:

<ul id="entries_list">
 <li>a</li>
 <li>b</li>
 <li>c</li>
</ul>
但问题是我必须使用自定义类“custom_selected”。在上述情况下,它可以通过shift正确选择,但不会取消选择。Jquery添加自己的类。是否可以覆盖默认类?如果我可以使用自定义类,那就更容易了

编辑:

我有这个,但它工作不正确:

编辑2:

我真的很抱歉,但是我贴错了。现在它是正确的。

为什么不简单地使用?还是简单的jQuery代码? 总之,对于jQuery,我为您创建了一个演示:

JS:

CSS:

HTML:


默认情况下,我使用了li中的文本,您可以将$this.text数组映射函数映射到任何其他属性。

为什么不使用?添加一个以获得更好的帮助并添加完整的jquery,而不仅仅是一个无人可以帮助的snippit…我不知道什么不起作用。。。一切正常。。。你有什么浏览器
prev = -1;
$("#entries_list").selectable({
  filter:'li',
  selecting: (e, ui) ->
    curr = $(ui.selecting.tagName, e.target).index(ui.selecting);
    if(e.shiftKey && prev > -1)
      $(ui.selecting.tagName, e.target).slice(Math.min(prev, curr), 1 + Math.max(prev, curr)).addClass('custom_selected');
      prev = -1;
    else
      prev = curr;
$('#entries_list li').on('click', function (e) {
    var li = $(this);
    var shift = e.shiftKey;
    if (shift) {
        if (li.hasClass('selected')) {
            li.removeClass('selected');
        } else {
            li.addClass('selected');
        }

    } else {
        $('.selected').removeClass('selected');
        li.addClass('selected');
    }
    var array = jQuery('#entries_list li.selected').map(function () {
        return $(this).text();
    }).get();
    $('p').text(array.join(','));
});
.selected {
    background-color:#eee;
}
ul {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: moz-none;
    -ms-user-select: none;
    user-select: none;
}
<ul id="entries_list">
    <li>a</li>
    <li>b</li>
    <li>c</li>
    <li>dc</li>
    <li>ddvc</li>
    <li>cvb</li>
    <li>gc</li>
    <li>cdf</li>
    <li>cd5</li>
</ul>Selected li:
<p></p>