2009-06-22 146 views
6

我有一個地圖應用我建2的z-index層。我有我的圖層點擊放大中的問題。單擊處理是底層的z-index層上,我不想被點擊上覆層的控制旋鈕時它開火。處理click事件

這個問題我已經是該事件被不管什麼引發,但該事件的originalTarget屬性不是底層的圖像被點擊頂層上的東西時。無論如何要改變這個?

回答

4

它被稱爲事件冒泡,您可以使用event.stopPropagation()方法(IE中的event.cancelBubble())控制它。您還可以通過從處理程序中返回true/false來控制它,這些處理程序由元素上的任何屬性調用。這是一個棘手的問題,所以我建議你做一些research

信息:cancelBubblestopPropagation

+0

這不是事件冒泡的元素。事件冒泡將是我在這兩個元素上都有一個單擊事件處理程序的地方。我只在底層有一個點擊處理程序。 – Alex 2009-06-22 08:36:29

+0

那麼你是什麼意思「的點擊處理器是底層zindexed層上,我不希望被點擊上覆層的控制旋鈕時它開火。」控件也使用冒泡。也許你真的想捕捉,但不支持IE – SpliFF 2009-06-22 08:40:36

1

雖然這並沒有解決這個問題,直接也可能是一個可行的解決方法,直到更合適的解決方案提出了自己。

寫一個函數稱爲onClick,並允許功能足夠的智慧知道誰的說法。然後該功能根據誰點擊它來採取適當的行動。你可以發送幾乎任何獨特的東西,然後使用開關。

簡單的例子:

<html> 
<body> 

<script type="text/javascript"> 
function myClickHandle(anID) 
{ 
switch(anID){ 
case 'bottom': 
     alert("I am on the bottom"); 
     break; 
case 'top': 
     alert("I am on the top"); 
     break; 
} 
} 
</script> 

<html> 
<div style="z-index:10"><input type=button value='top' onclick="myClickHandle(this.value)"/></div> 
<div style="z-index:11"><input type=button value='bottom' onclick="myClickHandle(this.value)"/></div> 
</body> 
</html> 
0

我認爲最好的做法是分離的事件處理程序時控制移動到上層,當控制回來到下層,你可以重新連接的事件。

相關問題