139
|
xkeshav · 技术社区 · 14 年前 |
1
160
第一,
如果这个元素被替换或丢弃,这个处理程序将不再存在。还有一些不存在的元素 运行此代码时 附加处理程序(例如选择器找到它)将无法获取处理程序。
但是,如果在某个地方确实有一个父元素不能被替换(因此它的事件处理程序不会再见),则应该使用
这和
另一个常见的用途是
触发 -对于更新的问题
有两个主要的事件处理程序触发函数可用,
they fall under the same "Event Handler Attachment" category in the API
这些是
You can view a listing including these shortcuts here .
至于区别,
下面是一个现实世界的例子:
这将运行任何提交处理程序,例如
jQuery validation plugin
,然后尝试提交
如果验证检查没有通过,插件会阻止处理程序通过轰炸来提交表单,但是使用这个方法,我们不关心它做了什么。不管它是否中止,我们不是
尝试
为了提交表单,我们只想触发它来重新验证,而不做其他任何事情。(
免责声明:
这是一个多余的例子,因为
|
2
28
前两个是等价的。
但是,第二个事件可用于同时绑定到多个事件,方法是指定几个以空格分隔的事件名称:
这个
在脚本的第二行执行之后,第二个链接也将有一个CSS类“mylink”。但它将没有事件处理程序,因为它在附加事件时没有类。
现在假设您希望它是另一种方式:每次在页面的某个地方出现带有类“mylink”的链接时,您希望它自动具有相同的事件处理程序。当您有某种类型的列表或表时,这是非常常见的,在这些列表或表中,您动态地添加行或单元格,但希望它们都以相同的方式工作。您可以使用
在本例中,第二个链接也将在获得“mylink”类后立即获取事件处理程序。魔术!-)
当然,这不是字面意思。什么
如果单击“文本”,则首先<b>元素将获得“单击”事件。之后,<a>元素将得到一个“click”事件。然后<div>元素将得到一个“click”事件。等等-一直到<body>元素。这就是jquery捕获事件的地方,看看是否有任何“活动”处理程序应用于最初导致事件发生的元素。整洁!
最后,
问题? |
3
8
从jquery 1.7开始,不推荐使用.live()方法。如果您使用的是jquery版本<1.7,则正式建议您使用.delegate()over.live()。 .live()现已替换为.on()。 最好直接到jquery站点获取更多信息,但下面是.on()方法的当前版本:
|
4
2
Live vs Delegate:此问题已在其他答复中得到答复。 |
5
1
在这里,阅读API可能会有所帮助。但是,我知道我的头,所以你可以继续懒惰(耶!).
这里没有区别(我知道)。
这是非常不同的,因为
这只是因为您分配事件处理程序的方式不同。
不管怎样,你都要把
当存在大量元素并且这些事件只会经历几个(或一个中心)点时,这很有用。这样可以节省浏览器的工作和内存,将这些事件处理程序合并为较少的对象。 |
Newbie_Coder · 如何使用Jquery无画布裁剪框架 1 年前 |
NovoMannen · 导航中的下拉菜单在内容后面重叠 1 年前 |
Community wiki · 无法从jquery文档调用函数 1 年前 |