javascript - jQuery 选项取消选择事件?

标签 javascript jquery

我想检测从选择元素中取消选择选项的事件。例如,如果我的 HTML 是:

<select id="select_box">
    <option value="1">Hot</option>
    <option value="2">Cold</option>
    <option value="3">Just Right</option>
</select>

选择第二个选项 (value="2"),然后用户通过单击另一个选项(例如 value="3")取消选择它code>) 或再次单击相同的选项,如何使用 jQuery 检测该事件?我的目标是在函数发生时触发它。

我尝试了以下方法:

$("#select_box option:selected").change(function() {
    console.log($(this).val());
});

但是没有成功。

最佳答案

change 事件应该在 select 元素本身上进行:

$("#select_box").change(function() {
    console.log($(this).val());
});

当选择的值发生更改时,此事件将触发,并且将符合您所需的行为。


I want the value of the option that was de-selected.

在这种情况下,您需要在选择之前存储之前的值,如下所示:

$("#select_box").change(function() {
    var $select = $(this),
        currentValue = $select.val(),
        oldValue = $select.data('previous-value');

    // do stuff...

    $select.data('previous-value', currentValue);
});

关于javascript - jQuery 选项取消选择事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19289881/

相关文章:

javascript - Jquery:可以动态更改自动完成小部件的来源吗?

javascript - jQuery 2.1 | jQuery 2.1删除重复子串的源子串

javascript - 如何在2个音轨和1个视频文件之间切换?

javascript - 如何在 angularjs 中从 View 调用的另一个方法中使用 $http.then 响应?

Jquery移动和PhoneGap : Reload page to get next item in database

javascript - 仅淡出背景颜色

jquery - JQGrid - 在编辑表单中显示附加列

javascript - BabylonJS 中从 AbstractMesh 到 Mesh

javascript - 将非输入元素与 Backbone.Syphon 一起使用

javascript - 将项目动态添加到列表时增加类和 ID