gpt4 book ai didi

javascript - 有没有办法在没有 "e"参数的情况下阻止 javascript 中的泡沫?

转载 作者:行者123 更新时间:2023-12-04 05:53:44 25 4
gpt4 key购买 nike

我看到很多教程告诉我防止气泡的方法是使用“e”参数

就像 :

function(e){
e.preventDefault()
}

但在某些情况下, Firebug 告诉我“e is not define”是错误的

那么有没有办法在没有参数 e 的情况下阻止泡沫?

最佳答案

如果您使用元素属性(例如 <button onclick="myFunc()"> )设置事件处理程序,则参数列表将为空。您必须使用 <button onclick="myFunc(event)">而是将当前事件作为参数传递。默认情况下不会将任何参数传递给回调函数。
event在这种情况下是一个特殊变量。使用时 <element onEVENT="code">浏览器使用 FunctionBody 创建一个新脚本和一个函数“代码”。这个函数将接受一个参数 event ,因此您可以在自己的函数/代码中使用此对象(请参阅 w3c:ehca )。注意IE创建了一个全局对象event对于每个触发的事件。

所以通event作为附加变量并使用 e.preventDefault() e.stopPropagation .请注意 return false;不会取消 click 中的传播事件。

示范:

  • Demonstration显示使用 jQuery 时回调函数的参数,<element onclick="">HTMLElementObject.onclick .
  • return false; vs e.stopPropagation(); (剧透:return false; 失败。)

  • 引用资料:
  • W3C: DOM Level 3: stopPropagation
  • W3C: DOM Level 3: preventDefault
  • W3C: HTML5 Event handler content attribute :

    Using the script execution environment created above, create a function object (as defined in ECMAScript edition 5 section 13.2 Creating Function Objects), with:

    Parameter list FormalParameterList

    If the attribute is the onerror attribute of the Window object

    • Let the function have three arguments, named event, source, and fileno.

    Otherwise

    • Let the function have a single argument called event.
  • 关于javascript - 有没有办法在没有 "e"参数的情况下阻止 javascript 中的泡沫?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9766232/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com