2016-05-25 79 views
0

我有一個簡單的腳本,它在從單獨的js文件加載時運行。 的設置是這樣的:使用JQuery在IE中更改屬性;僅在調試時才應用更改

var ddlPeriodeVan = $('[id$=ddlPeriodeVan]'); 
    var ddlPeriodeTot = $('[id$=ddlPeriodeTot]'); 
    chkPeriodeVanTot = $('[id$=chkPeriodeVanTot]').length > 0 ? $('[id$=chkPeriodeVanTot]') : $('[id$=rbPeriodeVanTot]'); 
    var periodeBereik = { van: 'ddlPeriodeVan', tot: 'ddlPeriodeTot', err: 'ddlPeriode', chk: chkPeriodeVanTot, label: 'Periode' }; 
    if (ddlPeriodeVan.length > 0 && ddlPeriodeTot.length > 0) { 
     if (chkPeriodeVanTot.length > 0) { 
      chkPeriodeVanTot.change(periodeBereik, changedCheckNummerBereik); 

      if (chkPeriodeVanTot.prop('checked')) { // checkbox aangevinkt, maak de waardevelden bewerkbaar 
       ddlPeriodeVan.prop('disabled', false).prop('readonly', false).css('background-color', '#FFFFFF'); 
       ddlPeriodeTot.prop('disabled', false).prop('readonly', false).css('background-color', '#FFFFFF'); 
      } else { // Disable en readonly aanzetten, achtergrond blauw en tekst op (leeg indien textbox/defaultwaarde indien dropdown) 
       // The debugger actually gets here and changes the properties correctly 
       // When there is no breakpoint, the changes have no effect 
       // When there is a breakpoint, the changes are made and remain visible 
       ddlPeriodeVan.prop('disabled', true).prop('readonly', true).css('background-color', '#AACAF4'); 
       ddlPeriodeTot.prop('disabled', true).prop('readonly', true).css('background-color', '#AACAF4'); 
      } 
     } 

在初始的Page_Load,chkPeriodeVanTot未選中和ddlPeriodeVanddlPeriodeTot應禁用,只讀和具有不同的背景顏色。

這在其他瀏覽器(當然)中可以正常工作,但IE對此有不同的看法,我不知道爲什麼。

奇怪的是,當我在IE11中的開發人員工具,並在文件中設置斷點。斷點被擊中並且代碼ddl被按預期更改! IE是否在某處刷新了DOM,以便所有更改都丟失?

編輯

我想通了,設置斷點甚至沒有必要。只需打開F12開發人員工具窗口即可。一切都正確加載。 關閉F12和清涼遊一遍......

回答

0

好吧,我得在這裏微軟的一些邏輯:

在所有「現代」的瀏覽器,即使你不window.console創建打開調試器。對於IE,如果調試器關閉,window.console爲undefined

內部錯誤,你將永遠不會看到它被拋出導致所有的腳本停止執行...

所以不要使用window.console(你不應該在生產代碼)或支票如果控制檯在使用前未定義。