我在windows 8 pro上使用版本27.0.1453.110 m的chrome。我有一个简单的SELECT元素和一个.change()函数。当所选项目发生变化时,应调用此函数。适用于IE和FireFox,以及旧版本的chrome,但在最新版本的Chrome中它已经坏了。当我单击向上/向下箭头或向上翻页/向下翻页滚动条而不先点击选项时,我会触发更改()。但是,一旦我点击一个选项,这种行为就会消失,而且工作正常。有任何想法如何解决这个问题?我做错了吗?
<form method="POST" action="">
<select id="a100" size="3">
<option value="1">1</option>
<option selected="selected" value="4">4</option>
<option value="21">21</option>
<option value="211">211</option>
<option value="2344">2344</option>
<option value="2qwr">2qwr</option>
</select>
</form>
$(document).ready(function () {
$('#a100').change(function () {
alert('change');
});
});
答案 0 :(得分:0)
现在我明白你在说什么。 Chrome对我也是这样做的。它不漂亮,但是如果保存旧值,一个简单的if语句就可以解决问题。见http://jsfiddle.net/jG275/2/
var oldVal;
$(document).ready(function () {
oldVal = $('#a100').val();
$('#a100').change(function () {
if ($(this).val() != oldVal) {
alert('change() called...new value: ' + $(this).val());
oldVal = $(this).val();
}
});
});
然而,这似乎不应该是必要的。但至少它解决了这个问题。