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 之后不起作用的主要内容,如果未能解决你的问题,请参考以下文章