我注意到可以为 <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');
}
});
关于javascript - 检查值是否在 change() 触发时改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7594535/