事件绑定是什么意思?每当我在互联网上搜索,无论我尝试查找什么含义,它对我来说仍然是模糊的。一段时间以前,在阅读一些关于JavaScript的博客时,我看到人们使用这个我无法理解的神圣词汇。
事件绑定是指告诉浏览器,当某个“事件”发生时应该调用特定的函数。这些事件大多与用户输入有关,例如点击。
在jQuery中绑定事件的示例可能如下:
$("#elem").bind("click", function() {
alert("Clicked!");
});
这将一个函数绑定到标识符为 elem
的DOM对象的 click
事件。当用户点击它时,将显示一个警告框(消息框)。绑定是通过调用jQuery bind
函数完成的,但也有其他方法可以实现(例如,在绑定到 click
事件时使用jQuery click
函数)。
.bind
和 .on
有什么区别呢?它们不是都做同样的事情吗?这两个都被称为绑定吗? - J82.on
是一种较新且更强大的事件绑定 API。首先,它支持所谓的“事件委托”,使您可以将处理程序附加到元素以响应发生在其子元素上的事件。这通常对于许多重复元素(例如列表中的项目),特别是如果它们被添加/删除,会更清晰和更有效率。 - Xiononclick
属性所示)。<input id="MyButton" type="button" value="clickme" onclick="Somefunction()" />
因此,当用户单击按钮时,将执行SomeFunction
函数。
然而,采用一种称为“后期绑定”的技术被认为是更好的方法。这可以确保您的HTML和JavaScript完全分离。
因此,我们可以像这样修改上面的示例:
document.getElementById("MyButton").onclick = function(){
//functionality here.
}
jQuery让这个过程更加简单:
$("#MyButton").click(function(){
//functionality here.
});
onclick
属性是免费的。如果使用document.addEventListener
和onclick
属性之间存在差异,那么这只是微小的优化,我不太关心。我更注重分离关注点。onclick
属性的主要问题是事件处理程序必须在全局范围内,这只会导致作用域污染。 - RaynosJS中的绑定是指在实际处理开始之前,捕获一些事件(如焦点、单击、鼠标悬停等)并执行其他一些操作。
详细解释:
http://triaslama.wordpress.com/2008/07/22/four-ways-javascript-binding-event-listeners/