2013-05-09 67 views
0

这个问题有点棘手。我的代码动态加载表中的表行然后将事件附加到所有表格单元在IE7/8中不起作用。但有时它确实没有明显的原因。jQuery事件监听器在IE 7/8中不起作用

这里是一个小例子: http://jsbin.com/ivarus/6/edit

这是我在做什么我的应用程序的简化版本

以下是具体步骤摄制: 1)打开IE浏览器,并设置为IE7/8来自开发工具(如果您已经在运行IE8,则不需要) 2)导航到http://jsbin.com/ivarus/6/edit 预期:在输出部分附加到TD工作的点击 实际上:事件监听器只有在按下“运行脚本”

在所有其他浏览器(IE9 +,Chrome,FF)中,此功能立即生效。为什么?我做错了什么?我应该寻找替代方法吗?

+0

你遍历数组'9',而它只有'0'和'1'。问题可能是JSbin中的autoupdating在旧的IE版本中不起作用。 – adeneo 2013-05-09 09:53:28

+0

那么,它适用于我在IE7和IE8如果我把你的代码从JSBIN保存到HTML页面,并在我的机器上运行没有任何问题。没有延迟。 – 2013-05-09 09:56:29

+0

这并不奇怪,IE7/8不支持其他浏览器。我认为这是IE7/8上运行脚本的安全问题,这些脚本可能包含特定来自不同域的不安全内容(仅IE7/8知道),而且它们对错误非常敏感,无论它们是否是语法错误。 – Rohit416 2013-05-09 10:36:03

回答

2

在脚本运行之前,您需要等待文档就绪事件。像这样包含你的代码。

<script> 
$(function() 
    { 
     //your code here 
    }); 
</script> 
0

- 在追加的问题()不起作用在旧IE

if (($.browser.msie) & 
     (($.browser.version == '6.0') || ($.browser.version == '7.0'))) 
    { 
     var oldHtml = $('#select').html(); 
     $('#select').html(oldHtml + appendInput); 
    }