IE7およびFF15.0.1では次のコードが期待どおりに機能するのに(選択に基づいてドロップダウンリストのサイズを変更する)、Chrome 23.0.1271.91では常にサイズ1になるのはなぜですか?
console.logを追加して実際に何が起こっているかを確認しようとしましたが、Chromeではサイズ変更機能が2回実行されているようですが、jQueryの初心者であるため、オブジェクトの受け渡しについてはまだよくわかりません。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<title></title>
<script type="text/javascript" src="jquery-1.8.3.min.js"></script>
<script type="text/javascript">
var vt = new Array('1','2','3','4','5');
var x = 1;
function addopts(ddl) {
console.log(ddl);
for ( var i = 0; i < vt.length; i++ ) {
var v = i * x;
$(ddl).append("<option value='" + v + "'>" + v + "</option>");
}
console.debug(ddl);
vt.push(x);
x++; // our list changes
}
function resize(ddl) {
console.log(ddl);
ddl.size = $(ddl).val();
$(ddl).empty(); // in case our list needs to change completely
console.log(ddl);
addopts(ddl);
console.log(ddl);
}
jQuery(document).ready(function() {
console.log(this);
$('#group').change(function() {
console.log(this);
resize(this);
});
});
</script>
</head>
<body>
<form>
<select id='group' size='1'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
</select>
</form>
</body>
</html>
↪JSFiddleでこのコードを表示する
どんな洞察もありがたいです。