2017-05-03 83 views
2

我有一個按鈕,裏面有一個跨度。我有一個點擊事件的按鈕,我也有一個點擊事件的跨度,但在IE11跨度點擊事件不是射擊(在Chrome/Firefox中工作)。有沒有任何解決方法,這不從一個按鈕更改爲div?點擊事件裏面的按鈕不在IE中觸發

我知道,改變我的按鈕到一個div將工作(如其他問題回答),我想避免這樣做。

https://jsfiddle.net/asjo8ox0/2/

$(document) 
 
    .on("click", ".parent", function() { 
 
    alert("parent"); 
 
    }) 
 
    .on("click", ".child", function(e) { 
 
    alert("child"); 
 
    e.stopPropagation(); 
 
    })
.parent { 
 
    width: 200px; 
 
    height: 200px; 
 
    background-color: cornflowerblue; 
 
} 
 

 
.child { 
 
    width: 100px; 
 
    height: 100px; 
 
    background-color: white; 
 
    display: none; 
 
} 
 

 
.parent:hover .child { 
 
    display: block; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<button class="parent"> 
 
    <span class="child"></span> 
 
</button>

+0

您正在嘗試的IE版本? –

+0

@NagaSaiA我在IE11中測試這個,將這個添加到我的問題中 – philr

+0

e不存在於您的點擊事件中... on(「click」,「.child」,function(e){ alert 「孩子」); e.stopPagagation(); }) – serverSentinel

回答

0

爲了達到預期的效果,下面添加meta標籤

<meta http-equiv="X-UA-Compatible" content="IE=edge"> 
+0

已經有我的本地代碼中的元標記,似乎並沒有改變任何東西 – philr

+0

,因爲它在IE邊緣工作正常,我已經創建了codepen - https://codepen.io/nagasai/pen/rmzGVX –

+0

我使用IE 11,我只是運行了codepen,我的問題依然存在 – philr

2

在我的網站與IE和一個按鈕有同樣的問題。而我有一個非常漫長的夜晚,因爲我們直接在去世後發現..:D 當你d可以看到父母點擊事件,你會發現什麼都沒有發生,點擊按鈕時從不會觸發子點擊事件。這是IE的一個普遍問題。

一個可能的解決方案:爲了避免/解決問題:只需添加一些javascript/jquery行來找出按鈕被點擊的座標以及何時有/是孩子,然後觸發child-event。

1

我知道在他想避免使用div作爲按鈕的問題中提到。但是不可能在IE中實現它而不做一些髒碼。最好的解決方案是將button更改爲div

這是更新的小提琴:https://jsfiddle.net/ovhhdab5/

相關問題