Javascript 理解jQuery中的处理程序

Javascript 理解jQuery中的处理程序,javascript,jquery,Javascript,Jquery,在我的代码中,我有: <script type="text/javascript"> $(document).ready(function (e) { $('#EventCreate').click(function (e) { location.href = '@Url.Action("Create", "AEvents")'; }); }); </script> <button id="E

在我的代码中,我有:

<script type="text/javascript">
    $(document).ready(function (e) {
        $('#EventCreate').click(function (e) {
            location.href = '@Url.Action("Create", "AEvents")';
        });
    });
</script>

<button id="EventCreate" type="button" class="btn btn-info" style="float:right;">Create New Event</button>
任何帮助/解释都将不胜感激。

e
将传递给匿名回调函数

如果要在参数列表中显式地声明它,不是强制性的,那么代码的工作方式将完全相同(假设您不尝试引用它)

如果需要,您甚至可以通过数组(
arguments[0]
)访问它,但在这种情况下,这将是草率的


主要的一点是,无论是否将其包含在函数参数中,它都将被传递到函数中。

e
/
事件在该上下文中,evt实际上是一个,而不是一个事件处理程序。它是传递给事件处理程序/侦听器回调函数的参数

这表示事件发生时的状态,并为实际事件提供有价值的上下文。只有当您需要事件本身的上下文数据时,才需要inlcude。否则可以忽略它,就像JavaScript中大多数不需要的参数一样

例如,以一个简单的输入处理程序为例:

文档
.getElementById('示例')
.addEventListener('change',onChange,false);
函数onChange(e){
console.log(e.target.value);//输入值
}
示例输入

e
在上面的例子中,实际上是事件对象,它为您提供了一些触发事件的基本信息,例如任何按键或鼠标位置,事件的目标是什么。我一直知道
e
是一个变量,您可以通过它来获得事件触发时的具体细节,但它不需要传递它。仅当您计划对细节执行某些操作时,
e
不是“事件处理程序”。它是事件对象。事件处理程序是函数本身。事件对象是jQuery提供的围绕浏览器创建的本机事件对象的包装。请阅读文档:并查看“e”是什么。@尖头啊好的,我从参考中的描述中获得了事件处理程序:描述:将事件处理程序绑定到“click”JavaScript事件,或在元素上触发该事件。感谢您的澄清否,
e
不是“事件处理程序”。事件处理程序就是函数。函数的参数(
e
在本例中)是事件对象。
<script type="text/javascript">
    $(document).ready(function (/* no event handler */) {
        $('#EventCreate').click(function (/* no event handler */) {
            location.href = '@Url.Action("Create", "AEvents")';
        });
    });
</script>