【问题标题】:jquery mobile flip toggleswitch to update listjquery mobile flip toggleswitch更新列表
【发布时间】:2014-10-24 01:04:23
【问题描述】:

我正在尝试使用切换开关更新列表,但我找不到解决方案。你们有什么意见吗?任何提示将不胜感激:)。

重要提示:.ui-li 列表 ID 是 #myListView,它是从服务器填充的,data-value+item.Gender+“女性”或“男性”。我想创建一个代码,如果用户对男性使用切换关闭,则列表将通过仅在 li 中显示“女性”值来更新。反之亦然。

到目前为止,我有这个(没有工作)代码:

$(document).on("pagecreate", "#page-settings", function (){
$("#flip-1").on("change", function (){
    if ($(this).val() == "off"){
        $("#myListView").val($(item.Gender =="female")).listview( "refresh" );
    }

});

});

我的 HTML 看起来像这样:

<div data-role="content" id="settingsPanel">
<div data-role="fieldcontain" id="menSelector" >    
        <label for="flip-1">Men</label>
        <select name="flip-1" id="flip-1" data-role="slider"data-mini="true" class="genderSelect">
            <option value="off"></option>
            <option selected="selected" value="on"></option>
        </select> 
    </div>

    <div data-role="fieldcontain" id="womenSelector" >  
        <label for="flip-2">Women</label>
        <select name="flip-2" id="flip-2" data-role="slider"data-mini="true" class="genderSelect">
            <option value="off"></option>
            <option selected="selected" value="on"></option>                
        </select>           
    </div>

【问题讨论】:

  • .val() 与列表视图一起使用是不正确的。请解释你想做什么。添加带有性别的列表项?
  • 嗨@omar,我已经更新了这个问题。希望它更清楚:)。感谢您的观察。
  • 嗨@cytasos,谢谢!是的,该列表是通过 PHP mysql 填充的,我有一个列表已经与女性和男性一起使用。但是从设置页面我有性别的切换选项。我的问题是当用户切换性别选项时如何刷新列表。
  • 好的,我现在明白了,我以为你想获取数据而不是清除男性或女性列表。嗯,这很容易,你在下面有一个答案。看看那里是否有一个 TRI 状态按钮,这样你就可以有一个中间状态而不是有 2 个按钮。

标签: javascript jquery html jquery-mobile


【解决方案1】:

假设你的 li 有一个性别数据属性,例如

<li data-gender="female"></li>

然后,当您拨动开关时,首先显示所有列表项:

$('#myListView li').show();

然后隐藏男性或女性:

$('#myListView li[data-gender="male"]').hide();

更新:

因此,给定您的翻转开关,处理更改事件并在每次更改时调用一个名为 ShowList() 的函数。在 ShowList() 中检查哪些翻转开关打开,如果一个打开另一个关闭,隐藏关闭的性别:

$(document).on("pagecreate", "#page1", function(){
    $("#flip-1").on("change", function(){
        if ($(this).val() == "off"){
            $("#flip-2").val("on").slider( "refresh" );
        }

        ShowList();
    });
    $("#flip-2").on("change", function(){
            if ($(this).val() == "off"){
            $("#flip-1").val("on").slider( "refresh" );
        }

        ShowList();
    });
});

function ShowList(){
    var m = $("#flip-1").val() == "on";
    var f = $("#flip-2").val() == "on";
    $('#myListView li').show();
    if (m && !f) {
        $('#myListView li[data-gender="female"]').hide();
    } else if (!m && f) {
        $('#myListView li[data-gender="male"]').hide();
    }
}

DEMO

【讨论】:

  • 谢谢@ezanker。我正在附加 +item.gender+ 的值,因此列表带有女性或男性作为结果数据。我的问题是如何使用翻转开关刷新该列表。抱歉,我无法有效地解释自己。
  • @user3356128,好的,我已经更新了使用你的翻转开关的答案。
  • 你是最棒的!太感谢了。我正在努力寻找解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-03
相关资源
最近更新 更多