Jquery 事件在 ajax/innerHtml 之后不起作用

Posted

技术标签:

【中文标题】Jquery 事件在 ajax/innerHtml 之后不起作用【英文标题】:Jquery Events dont work after ajax/innerHtml 【发布时间】:2011-01-25 16:56:29 【问题描述】:

我有很多活动,例如

$('.hidefile').click(function (event) 

在页面加载和某些条件下,我使用 ajax 获取某个 div 的 html 并用 .html(htmlstring) 填充它。我花了很长时间,但我注意到当我这样做时这些事件不起作用。如何用 html 填充 div 并让 jquery 事件使用它?

【问题讨论】:

【参考方案1】:

使用live 将您的点击事件(或其他)绑定到您的元素:

$('.hidefile').live("click", function (event) ...

当您使用 ajax 替换元素时,它们会丢失其事件处理程序。您可以在用于替换这些元素的特定 ajax 方法的 success 回调中显式重新绑定它们,或者改用 live 处理程序,这将:

为所有事件附加一个处理程序 与当前匹配的元素 选择器,现在或将来。

【讨论】:

变老的问题之一是,您在很久很久以前阅读文档,很久,然后您错过了在您不老时出现的各种不错的新功能t 看。谢谢,karim79!【参考方案2】:

您如何附加点击事件。您应该在 document.ready 事件中执行此操作,以确保 DOM 已加载。此外,根据 karim79 的建议,您应该使用 live 功能来确保事件持续存在。

【讨论】:

以上是关于Jquery 事件在 ajax/innerHtml 之后不起作用的主要内容,如果未能解决你的问题,请参考以下文章

ajax innerHTML 结果不从 PHP 返回 html 代码

jQuery——jQuery鼠标事件

JQuery事件

jQuery:jQuery的事件

jquery怎么自动触发radio的点击事件

jquery点击一个事件更换图片,在点击更换回来