我把需求简化了一下便于说明
function Fill() {
$("#div1").append($("<select id='sel1'></select><select id='sel2'></select>"));
$("#sel1").html(GetHtml());
$("#sel2").html(GetHtml());
}
function GetHtml() {
var str = "<option value='1'>opt 1</option>" +
"<option value='2'>opt 2</option>" +
"<option value='3'>opt 3</option>" +
"<option value='4'>opt 4</option>" +
"<option value='5'>opt 5</option>" +
"<option value='6'>opt 6</option>";
return str;
}
很简单,就是动态添加两个下拉框,然后填充数据,代码执行没问题但是当我修改后,改成sel1项被选择后才绑定sel2,别的地方不变
function Fill() {
$("#div1").append($("<select id='sel1'></select><select id='sel2'></select>"));
$("#sel1").html(GetHtml());
$("#sel1").change(function() { Fill2(); });
}
function Fill2() {
$("#sel2").html(GetHtml());
}
function GetHtml() {
var str = "<option value='1'>opt 1</option>" +
"<option value='2'>opt 2</option>" +
"<option value='3'>opt 3</option>" +
"<option value='4'>opt 4</option>" +
"<option value='5'>opt 5</option>" +
"<option value='6'>opt 6</option>";
return str;
}
这时问题出现了,在jquery1.2.6版本下,执行没有问题
但换成1.4.2后,在ie中执行时,sel2始终不会绑定数据,但火狐和chrome都正常。别的jquery版本我没试过
(注:其实不是没绑定,而是无法显示出来。如果我在Fill2里最后加上alert($("#sel2").html()),显示是有项目的请问这是怎么回事??
function Fill() {
$("#div1").append($("<select id='sel1'></select><select id='sel2'></select>"));
$("#sel1").html(GetHtml());
$("#sel2").html(GetHtml());
}
function GetHtml() {
var str = "<option value='1'>opt 1</option>" +
"<option value='2'>opt 2</option>" +
"<option value='3'>opt 3</option>" +
"<option value='4'>opt 4</option>" +
"<option value='5'>opt 5</option>" +
"<option value='6'>opt 6</option>";
return str;
}
很简单,就是动态添加两个下拉框,然后填充数据,代码执行没问题但是当我修改后,改成sel1项被选择后才绑定sel2,别的地方不变
function Fill() {
$("#div1").append($("<select id='sel1'></select><select id='sel2'></select>"));
$("#sel1").html(GetHtml());
$("#sel1").change(function() { Fill2(); });
}
function Fill2() {
$("#sel2").html(GetHtml());
}
function GetHtml() {
var str = "<option value='1'>opt 1</option>" +
"<option value='2'>opt 2</option>" +
"<option value='3'>opt 3</option>" +
"<option value='4'>opt 4</option>" +
"<option value='5'>opt 5</option>" +
"<option value='6'>opt 6</option>";
return str;
}
这时问题出现了,在jquery1.2.6版本下,执行没有问题
但换成1.4.2后,在ie中执行时,sel2始终不会绑定数据,但火狐和chrome都正常。别的jquery版本我没试过
(注:其实不是没绑定,而是无法显示出来。如果我在Fill2里最后加上alert($("#sel2").html()),显示是有项目的请问这是怎么回事??
$("#sel1").change(function() { Fill2(); });
$("#sel1").html(GetHtml());
$("#div1").append($("<select id='sel1'></select><select id='sel2'></select>"));
$("#sel1").html(GetHtml());
$("#sel1").change(function() { Fill2(); });
}
change事件可以放到外面去 同时可以放到前面去