之前遇到事件冒泡的問題,也去網上搜索了一番,結果大部分都是一樣的代碼,貼來用時也不太順利。涉及到FF時,可以用 e.stopPropagation(); ,不知怎地我沒用成功。不過我發現FF支持e.cancelBubble = true;的寫法,經測試可行。就把代碼貼在這裡吧,省得以後到處找。IE以前版本的兼容性還沒測試,用到時再完善吧。
復制代碼 代碼如下:
//取消事件冒泡
function stopBubble(e) {
var evt = (e) ? e : window.event;//兼容FF
evt.cancelBubble = true; //evt.stopPropagation(); FF下阻止冒泡,據說可以用
};
另:
1、cancelBubble(HTML DOM Event 對象屬性) :如果事件句柄想阻止事件傳播到包容對象,必須把該屬性設為 true。
2、stopPropagation(HTML DOM Event 對象方法):終止事件在傳播過程的捕獲、目標處理或起泡階段進一步傳播。調用該方法後,該節點上處理該事件的處理程序將被調用,事件不再被分派到其他節點。
3、 preventDefault(HTML DOM Event 對象方法)通知浏覽器不要執行與事件關聯的默認動作。
例子:
function stopBubble(e)
{
if (e && e.stopPropagation)
e.stopPropagation()
else
window.event.cancelBubble=true
}
把這個stopBubble(e)函數放到你想要的阻止事件冒泡函數裡面就可以阻止事件冒泡了