javascript - 检查值是否在 change() 触发时改变

标签 javascript jquery

我注意到可以为 <select> 触发 change()即使选项未更改。

查看我的 jsfiddle示例。

更改选择将更改显示的文本输入。但是(我知道这有点牵强)如果你:

  • 通过单击其标签选择下拉列表 Selection:
  • 按下键盘(假设选择了 Show A)
  • 然后选择Show A使用鼠标指针将触发 change()。

是否有一个简单的解决方法(现在我正在考虑使用一个变量来跟踪最后一次选择的内容是 change())?

编辑: 看来这是 Chrome 特有的问题。通过使用一个变量来跟踪上次选择的项目是什么,我能够修复这个问题。我想这是留给 jQuery/Chrome 开发人员的一个错误。

最佳答案

我会将当前值存储为元素上的数据(而不是变量),如下所示:

$('#variable').data('currentval', $('#variable').val()).change(function() {
    var t = $(this);
    if (t.data('currentval') != t.val()) {        
        $(this).data('currentval', $(this).val());
        $('#listA').toggle('fast');
        $('#listB').toggle('fast');
    }
});

http://jsfiddle.net/emMx6/2/

关于javascript - 检查值是否在 change() 触发时改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7594535/

相关文章:

javascript - 将元素偏移量添加到 jQuery 偏移量计算中

jquery - Django/AJAX - 在第一次 jQuery AJAX 调用后(即后续调用)不会呈现新数据

jquery - 将鼠标悬停在选项卡上会强制浏览器滚动到页面顶部

java - 我应该使用哪个 JSObject?

javascript - 使用 jQuery 在树形 View 中显示 HTML 结构

javascript - 在 Chrome 中附加带有图像的 div

javascript - 根据下拉值字段中的部分值选择下拉列表

javascript - 如何使框架中的实体旋转/旋转?

javascript - javascript中小数点后的数字限制

jquery - 使用 jquery 选择器检测 pnotify 的显示或加载