开发者问题收集

阻止 JavaScript 执行

2012-06-05
489
<div onclick="AutogeneratedMethod()">
<span>SPAN 1 : I require auto method </span>
<span onclick="DesiredMethod()">SPAN 2 : I do not require auto method</span>
</div>

在上面的代码示例中,当用户点击 SPAN 2 时,如何防止调用 AutogeneratedMethod() ?我无法控制 div 的声明及其相应的 onclick 行为。该行是从我使用的框架自动生成的。

我正在寻找可以在 DesiredMethod() 末尾终止 Javascript 执行的方法。类似这样的方法:

function DesiredMethod() {
//Do necessary stuff
exit; //Abort any further Javascript
}
2个回答

您想要停止 事件传播 。IE 具有 cancelBubble

sachleen
2012-06-05

您也可以像这样移动一些东西:

<div>
   <span onclick="AutogeneratedMethod()">SPAN 1 : I require auto method </span>
   <span onclick="DesiredMethod()">SPAN 2 : I do not require auto method</span>
</div>

那么您就不必担心事件传播和冒泡了。

您可能还想考虑通过不同的机制附加您的 JavaScript 事件,无论是使用框架(jQuery 等)还是使用纯 JavaScript。出于多种原因,通过 HTML 属性执行此操作是不受欢迎的。查看 此链接 了解更多详情。

arb
2012-06-05