2009-11-27 98 views
0

我有類似下面的內容:鼠標事件問題嵌套元素

<div onclick="divClickEvent();"> 
    <img onmousedown="imgOnDownEvent();" /> 
</div> 

的問題是,如果你的鼠標下的IMG,在鼠標彈起股利點擊火災。我試圖通過向img元素添加一個onclick="return false;"來覆蓋div onclick,但div onclick仍然在觸發。我也有一個取消泡泡,並在文檔onmouseup事件(它在img ondown事件中動態附加)返回false。

我已經用完了想法。爲什麼div仍在處理該事件,我該如何阻止它?

回答

1

cancelBubble已棄用。

使用event.stopPropagation()代替圖像的onclick事件中的cancelBubble [非標準方法]。

它阻止當前事件的進一步傳播。

+0

是的,這是固定不變的它的感謝! – fearofawhackplanet 2009-11-27 11:55:42

+1

IE不支持stopPropagation ...我假設我應該在IE中使用cancelBubble? – fearofawhackplanet 2009-11-27 13:14:15

1

考慮使用抽象的框架如jQuery,在那裏你可以用同樣的方法停止傳播不管瀏覽器版本:

<div id="image_holder"> 
    <img id="some_image" alt="" src="" /> 
</div> 

<script type="text/javascript"> 
    $(document).ready(function(){ // This will be run when DOM is ready 
      var holder = $('#image_holder'), 
       someImage = $('#some_image'); 

      someImage.bind('mousedown', function(event){ 
       // This will be run on mousedown 
       event.preventDefault().stopPropagation(); 
      }); 
    }); 
</script>