這並不IE8的工作,但在所有其他瀏覽器:用相同元素的ID名稱變量選擇它們時
myDialog = $('#myDialog');
somethingHere = $('#somethingHere');
換句話說,如果變量名和元素ID名是相同的jQuery 1.5.1在IE8上死亡。
只要它們不同,它的作品。
myDialog1 = $('myDialog');
花了我3小時才意識到這一點。 : - |
這是一個錯誤或預期的行爲?
這並不IE8的工作,但在所有其他瀏覽器:用相同元素的ID名稱變量選擇它們時
myDialog = $('#myDialog');
somethingHere = $('#somethingHere');
換句話說,如果變量名和元素ID名是相同的jQuery 1.5.1在IE8上死亡。
只要它們不同,它的作品。
myDialog1 = $('myDialog');
花了我3小時才意識到這一點。 : - |
這是一個錯誤或預期的行爲?
這可能是與事實,如果你聲明一個全局變量具有相同名稱的DOM元素的ID,它會在全局命名空間衝突的事情。我認爲這會在任何瀏覽器中導致你的問題,也許IE只是抱怨更多。例如在任何瀏覽器的腳本調試器中:
<div id="myDialog">
> window.myDialog
.. <div id="myDialog">
> myDialog = "hello";
.. "hello"
> window.myDialog
.. "hello"
哎呀!不再可能通過ID引用DOM元素。 DOM元素ID和全局變量共享相同的名稱空間。
好的。這在所有的瀏覽器,但IE8罰款。 – TraderJoeChicago 2011-04-19 07:57:27
嘗試作序變量聲明var
:var myDialog = $('#myDialog');
將其作爲錯誤報告提交.... http://bugs.jquery.com/newticket – klabranche 2011-04-18 21:56:28
這是報告jQuery錯誤的錯誤地方。試試jquery.com。 – chuckj 2011-04-18 21:57:07