这不适用于IE8,但适用于所有其他浏览器:
myDialog = $('#myDialog');
somethingHere = $('#somethingHere');
换句话说,如果变量名和元素id名是SAME jQuery 1.5.1在IE8上死掉。
只要它们不同就有效。
myDialog1 = $('myDialog');
我花了3个小时才意识到这一点。 : - |
这是一个错误还是预期的行为?
答案 0 :(得分:0)
尝试使用var
:var myDialog = $('#myDialog');
答案 1 :(得分:0)
这可能与以下事实有关:如果声明一个与DOM元素ID同名的全局变量,它将在全局命名空间中发生冲突。我认为这会导致你在任何浏览器中出现问题,也许IE只会抱怨更多。例如在任何浏览器的脚本调试器中:
<div id="myDialog">
> window.myDialog
.. <div id="myDialog">
> myDialog = "hello";
.. "hello"
> window.myDialog
.. "hello"
糟糕!不再可能通过ID引用DOM元素。 DOM元素ID和全局变量共享相同的命名空间。