【问题标题】:JQuery Mobile: when an option is selected: do something. (show/hide element)jQuery Mobile:选择选项时:做点什么。 (显示/隐藏元素)
【发布时间】:2015-05-17 17:42:52
【问题描述】:

在过去的 6 个小时里,我一直在努力解决这个问题,但我找不到解决方案。我正在使用 jquery mobile 1.4.5。我有 5 个选项。它们都被选中,当一个被取消选择时,我想做点什么。所以我想获得取消选择选项的ID。这是我的html:

<ul data-role="listview" data-inset="false" data-icon="false" data-divider-theme="b">
<li data-role="list-divider"><h2>Upcoming events <button data-role="none" class="filter" type="submit">
<i class="fa fa-filter"></i> 
</button><button onclick="hide()">Hide social</button><button onclick="show()">show social</button><h2></li>
<div class="ui-field-contain sixtynine" data-position-to="window">
<select name="select-custom-19" id="filter-type" multiple="multiple" data-native-menu="false">
    <option>Filter events</option>
    <option value="1" selected="selected" id="f-1">family</option>
    <option value="2" selected="selected" id="f-2">friends</option>
    <option value="3" selected="selected" id="f-3">business</option>
    <option value="4" selected="selected" id="f-4">social</option>
    <option value="5" selected="selected" id="f-5">private</option>
</select>
</div>
<li data-role="list-divider"><h2>Today<h2></li>
// irrelevant

“隐藏社交”和“显示社交”工作。而且我希望能够在选择中拥有他们的行为。因此,我有一个选择选项,而不是 2 个按钮(1 个显示,1 个隐藏),选中时显示元素,未选中时隐藏它。其他 4 个选项同上。

那么我该如何解决呢?

【问题讨论】:

    标签: javascript jquery jquery-mobile html-select


    【解决方案1】:

    可以使用jquery提供的on('change')函数:

    $('#filter-type').on('change', function (e) {
        var optionSelected = $("option:selected", this);
        console.log(optionSelected);
        var valueSelected = this.value;
        ....
    });
    

    jquery select change event get selected option

    【讨论】:

    • 感谢您的快速回复。我试过了,它似乎不起作用。 $('#filter-type').on('change', function (e) { var optionSelected = $("option:selected", this); console.log(optionSelected); alert(optionSelected); var valueSelected = this.value; alert(valueSelected); });
    • 想想吧。您将处理程序附加到什么元素? this 在该函数中是什么意思?
    • 您将处理程序附加到 #filter-type 元素 - 这是 selectselect 没有 valueselect 包含 option 元素,确实values。您已经获取了所有选定的选项并将它们放入 optionSelected 变量中。在控制台中检查一下。顺便说一句:避免alert(value) - 将内容记录到控制台,您可以在其中右键单击 -> 存储为全局变量,然后您可以与它们进行交互。
    • 哦,好的,谢谢。那么我将如何访问已选择的选项?当您说控制台时,您是指谷歌浏览器中的控制台吗?甚至 'alert(optionSelected)' 什么都没做是正常的吗?
    • alert 只能在框中显示一个字符串。与字符串相比,Javascript 的 FAAR 更多:) 所有现代浏览器都有一个“开发人员工具”区域,其中包含用于显示网络流量、调试等的各种工具,但是 - Chrome 是一个不错的选择。 F12 或 Ctrl-Shift-I 或菜单 -> 更多工具 -> 开发人员工具。作为一名编码员,我 100% 的时间都在每个窗口中打开它。
    猜你喜欢
    • 2013-08-24
    • 1970-01-01
    • 2012-10-21
    • 1970-01-01
    • 2012-03-24
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    相关资源
    最近更新 更多