没有什么叫做 HTML 事件!您描述的两种类型的事件是内联事件和不显眼的事件,它们都是javascript事件。
内联事件
当您在元素本身上声明 javascript 代码时,它就变成了内联事件。您有一些常见事件(作为 HTML 元素的属性),例如onclick
、onkeydown
、onkeypress
、onkeyup
,并且所有事件都以on
. 一个这样的例子是:
<a href="#" onclick="alert('You clicked me!')">Click Me!</a>
不引人注目的事件
当事件被触发时,我们需要分配一些要执行的东西。符号总是在 JavaScript 中用于将=
右侧的值分配给左侧的方法或属性。
窗口不是我们可以附加事件的唯一对象。我们可以将事件附加到网页中的任何对象,前提是我们有一种唯一标识该对象的方法。识别对象的一种方法是给它一个 ID 并通过引用它document.getElementById("id_of_the_element")
。
让我们举同样的例子。
<a href="#" id="clickme">Click Me!</a>
而不是onclick
属性,我ID
在同一个地方有一个唯一标识 HTML 元素的<a>
。现在我可以通过这种方式在 javascript 中获取 ID:
document.getElementById('clickme');
为此,我可以附加一个事件处理程序,它与我们使用属性的方式没有太大区别。它只是没有on
在前面。在我们之前的示例中,我们使用了onclick
,但现在我们将使用click
。
document.getElementById('clickme').click = functionName;
这里,functionName
指的是任何 javascript 的函数名,或匿名函数。因此,对于警报,如果我们创建一个名为 的函数alertme()
,我们可以这样定义:
function alertme()
{
alert('You clicked me!');
}
现在可以通过这种方式将函数附加到元素:
document.getElementById('clickme').click = alertme;
还是比较懒,可以用匿名函数的方式来做,没有名字:
document.getElementById('clickme').click = function () {
alert('You clicked me!');
}
希望你明白。:) 让我知道进一步澄清。