IE7上的'change'事件,ajax和live()

时间:2011-03-22 15:59:49

标签: jquery internet-explorer-7 live

我阅读了很多关于我遇到的问题的帖子,但一直无法解决。我正在使用jquery 1.5.1,我在IE7上遇到'更改'事件的问题。由于互操作性是必须的,我一直在努力(不成功)使用'change'事件获取live()以在IE7上工作。

有些人建议使用livequery(),但对我来说,这也不是解决方案。

有没有办法使用ajax加载选项表单来响应IE7上的'change'事件,你会建议什么?

顺便说一句,代码在IE8和FF上完美运行。

谢谢! 纽曼

3 个答案:

答案 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


});