2017-05-29 46 views
5

我有以下this html代碼。關於禁用onclick事件​​只有在點擊文本時才起作用,但在td中點擊其他區域時不起作用(ie10,即ie11問題)

<table border="1" style="width:100%"> 
 
<tr> <th>Col</th></tr> 
 
    <tr><td onclick="alert('1');" disabled="disabled"><label>One<br></label></td></tr> 
 
    <tr><td onclick="alert('2');" disabled="disabled"><label>Two<br></label></td></tr> 
 
    <tr><td onclick="alert('3');" disabled="disabled"><label><br></label></td></tr> 
 
</table>

上面的代碼在Chrome和微軟邊緣意味着它顯示了一下TD標籤內的任意位置在所有3個TDS警報。
但是在IE10中,只有當td包含一些數據時才起作用,就像上面的代碼一樣,第三行不給出警報,對於其他tds,它只在我們點擊文本時才起作用,而不是點擊td以外的任何其他區域文本。

此代碼在我的大型應用程序的一部分。 我只想知道這是IE中的一個已知錯誤,如果是的話,任何人都可以爲我提供該錯誤的鏈接。
或者我錯過了導致問題的代碼。由於它是大型應用程序的一部分,我希望添加更少的代碼,以便它不會影響其他應用程序。

任何幫助,將不勝感激

+0

您使用舊的設計模式....你想達到什麼目的?可以在表格中排列列嗎?改用或按鈕。表格和單元格是表示元素。 a和按鈕是動作元素。你應該將行動事件綁定給他們。 –

+0

你沒有提到什麼可以改變,什麼不在代碼中。什麼IE確實是有道理的:你已經禁用了td,因此沒有註冊鼠標操作。當您刪除禁用的屬性時,點擊也適用於整個td的IE。當這可以在html中更改(我想知道禁用的原因)時,顯然可以在頁面加載後使用Javascript來完成。併成爲一個好孩子,並在那裏添加事件處理程序;-) – msoft

+0

請在您的問題中添加一些信息,以瞭解您可以*做些什麼。你在其他評論中提到你不能刪除殘疾人。是否需要其他代碼,或者可以通過Javascript加載頁面時將其刪除。如果是的話,你可以添加一個id或類到這個表,所以Javascript可以找到它?我猜想沒有jQuery,因爲它是舊代碼。 – msoft

回答

1

根據文檔:https://msdn.microsoft.com/en-us/library/ms533732(v=vs.85).aspx

禁用元素不響應鼠標事件

我在IE11測試你的代碼和它的作品沒有disabled屬性。我認爲這可能是一個td特定的問題,所以我將onclick添加到div,它也可以工作,只要沒有disabled屬性。

Test this on IE11

+0

看起來像你的答案,我對這個問題的評論大約是在同一時間。具有相同的內容。雖然我們仍然不確定他是否可以刪除「殘疾人」。如果不是這個答案不完整;-) – msoft

+0

@msoft他不應該在不接受該屬性開始的元素上使用'disabled'。我認爲'data- *'屬性會更適合這項工作。 –

+1

肯定的事情!但是,通常有人必須在現有代碼上工作,這取決於這樣的奇怪設置。我只是想知道這裏是否也是這種情況。不是我可以想到爲什麼任何人想要這個在td的原因,但我碰到過陌生的東西... – msoft