'功能(事件)'是什么意思?在js

时间:2014-08-31 17:20:59

标签: javascript events

我不知道句子的含义'功能(事件)'

Event.add(apple,'click',function(event) {
    Event.stopPropagation(event);
});

不是论证'事件'是javascript的唯一关键字?

关键字是否可以作为某个函数的参数?

我理解以下代码的含义:

function(test) {
alert(test);
}

但我不明白这个:

  

功能(事件)...

任何人都可以向我解释一下吗?

5 个答案:

答案 0 :(得分:3)

  

事件对象总是传递给处理程序,并包含许多有用的信息。

     

不同类型的事件提供不同的属性。例如,onclick事件对象包含:

     
      
  • event.target - 对点击元素的引用。 IE使用event.srcElement代替。
  •   
  • event.clientX / event.clientY - 点击时指针的坐标。
  •   
     

有关单击了哪个按钮和其他属性的信息。   请访问此链接。
  它非常简单地回答您的所有问题

来源http://javascript.info/tutorial/obtaining-event-object

实施例

就像在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.addelement.on。它没有保留(虽然Event是,这就是为什么你可以使用Event.add),你可以随意命名。

event参数用于传递有关已发生事件的信息(在这种情况下单击apple),可用于检索有关事件的数据或对其进行操作。 / p>


function(){...}是一个匿名函数,这意味着你不需要命名它,你可以直接声明它,并且函数将作为参数传递,就像你说的那样

function foo (event) {
    ...
}
Event.add(apple, "click", foo);

但你不需要事先申报。它确实存在不可重复的缺点,例如清除事件处理程序时。

答案 4 :(得分:0)

看看事件变量,大家都会明白:)

function (event) {
  console.log({ event });
}