为什么我不能停止这个js点击事件传播

时间:2012-06-05 14:20:44

标签: javascript jquery

我试图通过拦截内联处理程序中的事件并停止传播来覆盖单击处理程序(传播禁用从here获取的代码)。

以下代码不仅不会停止传播,甚至不会触发内联处理程序。我不知道出了什么问题。

小提琴:http://jsfiddle.net/trKN4/3/

HTML:

<a onclick='stopIt(event);'>do it</a>​

JS:

function disableEventPropagation(event)
{
   if (event.stopPropagation){
       event.stopPropagation();
   }
   else if(window.event){
      window.event.cancelBubble=true;
   }
}

function stopIt(event) {
    disableEventPropagation(event);
    alert('dont do it');
}


$(function() {

    $('a').click(function(e){
        alert('im doing it');
    });                   

});

1 个答案:

答案 0 :(得分:1)

它没有触发内联函数,因为jsFiddle将所有代码包装在onload处理程序中,将其从处理程序的可访问范围中取出。

从左侧菜单中选择no wrap选项。

DEMO: http://jsfiddle.net/trKN4/4/

enter image description here