首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在DeSelect Mobile中选择All / jQuery所有选项

在DeSelect Mobile中选择All / jQuery所有选项
EN

Stack Overflow用户
提问于 2014-03-11 22:32:42
回答 2查看 2.1K关注 0票数 2

我正在尝试做一个select all,用jQuery移动取消所有选择。这似乎微不足道,但我一整天都在听这件事。看上去是这样的:

这是JSFiddle

代码语言:javascript
复制
<div data-role="page" id="one">
  <div data-role="content">
    <label for="sel">Select the Options</label>
    <select name="sel" id="sel" data-native-menu="false" multiple="multiple">
      <option value="-1" selected>-All Brands-</option>
      <option value="1">Prod 1</option>
      <option value="2">Prod 2</option>
      <option value="3">Prod 3</option>
    </select>
  </div>
</div>

JavaScript:

代码语言:javascript
复制
var arr = [];
$("#sel").live("change", function (event, ui) {
    var txt = $("#sel option:selected").text();
    if (txt.search("-All Brands-")) {

        $("#sel option").attr("selected", "selected");

    }
    else {
        $("#sel option:selected").removeAttr("selected");

    }
    $("#sel").selectmenu("refresh", true);
})

我试过很多东西,但都搞不好。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-11 23:19:16

好的,jquery移动多个select只有一个更改事件,正如您可能看到的那样。因此,我能想到的唯一方法就是存储所有品牌项目的状态,然后检查它是否被更改,并选择或取消选择所有。下面是您的JSFiddle所做的更改:

http://jsfiddle.net/Gm89P/7/

就像这样:

代码语言:javascript
复制
var arr = [];
$("#sel").on("change", function (event, ui) {

    var allSelected = $("option:first", this).attr("selected");

    if (this.wasAllSelected && !allSelected) {
        $("#sel option:selected").removeAttr("selected");
        this.wasAllSelected = allSelected;
    }
    else if (!this.wasAllSelected && allSelected) {
        $("#sel option").attr("selected", "selected");
        this.wasAllSelected = allSelected;
    }
    $("#sel").selectmenu("refresh", true);
})
票数 1
EN

Stack Overflow用户

发布于 2015-01-25 20:18:12

如果您选择操作这些类,您可以手动这样做:

代码语言:javascript
复制
// For de-selecting

$( '#yourSelectMenuId'  ).val( '' ).change();
$( '#yourSelectMenuId-listbox ul li a' ).removeClass( 'ui-checkbox-on' );
$( '#yourSelectMenuId-listbox ul li a' ).addClass( 'ui-checkbox-off' );

不要忘记将-listbox扩展添加到您的select菜单id中,jqm自动添加该id。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22338090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档