gpt4 book ai didi

jquery - 对 .live 与 jQuery 的配合方式感到困惑

转载 作者:行者123 更新时间:2023-12-01 08:16:28 25 4
gpt4 key购买 nike

我有以下代码,但文档中没有准备好?

$('a[href^="content/"]').live('click', function(event)
{
event.preventDefault();
....

此代码位于结束正文标记上方。

如果我的 HTML 正文包含具有匹配 href 的地址链接,那么即使在执行此代码时它们尚未位于 DOM 中,它们也会获得点击吗?我对 .live 的工作原理有点困惑。我认为通常您不会在实际元素上使用 .live ,而是在将来要填充元素的包含 block 上使用 .live 。

最佳答案

I thought normally you would not use .live on an actual element but rather on the containing block which you were going to fill with elements in the future.

这就是代表所做的事情。然而,现场事件非常相似——它们只是使用文档本身作为“包含 block ”。这样做的缺点是 jQuery 必须检查页面上发生的给定类型的所有事件。因此,如果可能的话,您应该始终使用委托(delegate)(通常是可能的!)

<小时/>

但是,从 jQuery 1.7 开始,各种事件注册方法已统一为 .on()它根据参数注册常规事件和委托(delegate)。对于实时事件,您只需在 document 上创建委托(delegate)即可。

以下是一些关于注册实时/委托(delegate)事件的旧/新方法的示例(我将省略常规方法,因为它们与 .bind() 类似,但具有新的函数名称.on()):

// live events
$('.foo').live('click', function(e) {}); // old
$(document).on('click', '.foo', function(e) {}); // new

// delegates
$('#container').delegate('.foo', 'click', function(e) {}); // old
$('#container').on('click', '.foo', function(e) {}); // new

关于jquery - 对 .live 与 jQuery 的配合方式感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10380711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com