我阅读了很多关于我遇到的问题的帖子,但一直无法解决。我正在使用jquery 1.5.1,我在IE7上遇到'更改'事件的问题。由于互操作性是必须的,我一直在努力(不成功)使用'change'事件获取live()以在IE7上工作。
有些人建议使用livequery(),但对我来说,这也不是解决方案。
有没有办法使用ajax加载选项表单来响应IE7上的'change'事件,你会建议什么?
顺便说一句,代码在IE8和FF上完美运行。
谢谢! 纽曼
答案 0 :(得分:0)
如果你没有用ajax渲染选择列表你最好使用$(selector).change in document.ready function live不会传播IE中选择列表的更改事件,所以你必须将事件处理程序附加到选择列表本身。
修改我使用以下代码加载选择列表
$.ajax({
type:"post",
url:"/controls/selectlist",
dataType:"html",
success:function(data)
{
$("#result").append(data);//data will contain html of my select list with ID = mylist
$("#mylist").change(function(){
//put event handling code here
});
}
});
答案 1 :(得分:0)
您是否尝试过delegate而不是直播?
答案 2 :(得分:0)
它对我来说很好,必须是你的代码或浏览器......
请看我的例子 http://jsfiddle.net/blowsie/82Adg/3/
$("select").live('change', function(){
alert('change')
});
$("#button").click(function(){
$("body").append("<select><option value='1'>1</option><option value='2'>2</option></select>")
return false
});