我不知道句子的含义'功能(事件)'
Event.add(apple,'click',function(event) {
Event.stopPropagation(event);
});
不是论证'事件'是javascript的唯一关键字?
关键字是否可以作为某个函数的参数?
我理解以下代码的含义:
function(test) {
alert(test);
}
但我不明白这个:
功能(事件)...
任何人都可以向我解释一下吗?
答案 0 :(得分:3)
事件对象总是传递给处理程序,并包含许多有用的信息。
不同类型的事件提供不同的属性。例如,onclick事件对象包含:
event.target
- 对点击元素的引用。 IE使用event.srcElement代替。event.clientX
/event.clientY
- 点击时指针的坐标。有关单击了哪个按钮和其他属性的信息。 请访问此链接。
它非常简单地回答您的所有问题
就像在HTML中一样,你已经分配了一个像这样的事件
<button onclick="alert(event)">See the event</button>
然后
function alert(event) {
// event.type contains whether this event was invoked in the result of a click etc
// event.target would contain the reference to the element which invoked this method/event
}
答案 1 :(得分:0)
它是一个匿名函数,它是一个没有名称的函数,它发送事件对象。该对象包含有关事件本身的信息。它总是作为第一个对象/变量传递。
答案 2 :(得分:0)
它定义了一个匿名函数对象。这段代码:
function foo(bar) { ... }
在功能上类似于:
var foo = function (bar) { ... };
(除了在第一种情况下名称foo
和,函数对象的创建和赋值被提升到范围的顶部,而在第二种情况下只有名称foo
已被提升; foo
在分配执行之前不会保留该功能。)
实际上,您发布的代码是调用Event.add()
并将函数作为第三个参数传递给它,而不是提前声明函数,它是内联创建函数对象。
在您的问题中编写代码块的另一种方法是:
function handler(event) {
Event.stopPropagation(event);
}
Event.add(apple, 'click', handler);
除了问题中的代码没有引入handler
名称。
请注意,没有此类方法Event.stopPropagation()
。但是,event
对象将具有stopPropagation()
,因此大写字母E可能是拼写错误。意图可能是使用function (event) { event.stopPropagation(); }
。
答案 3 :(得分:0)
event
只是一个传递给事件监听器函数的变量,例如Event.add
,element.on
。它没有保留(虽然Event
是,这就是为什么你可以使用Event.add
),你可以随意命名。
event
参数用于传递有关已发生事件的信息(在这种情况下单击apple
),可用于检索有关事件的数据或对其进行操作。 / p>
function(){...}
是一个匿名函数,这意味着你不需要命名它,你可以直接声明它,并且函数将作为参数传递,就像你说的那样
function foo (event) {
...
}
Event.add(apple, "click", foo);
但你不需要事先申报。它确实存在不可重复的缺点,例如清除事件处理程序时。
答案 4 :(得分:0)
看看事件变量,大家都会明白:)
function (event) {
console.log({ event });
}