使用 ajax 调用处理新对象创建的自定义事件?
Posted
技术标签:
【中文标题】使用 ajax 调用处理新对象创建的自定义事件?【英文标题】:custom events for handle new object create with ajax call? 【发布时间】:2011-08-24 22:44:02 【问题描述】:我有一个带有 div 的页面,它从使用 jquery/ajax 调用的 php 脚本加载内容。 内容本质上是一个文件/文件夹树。 我需要使这些可放置/可拖动,所以我使用了 .draggable 和 .droppable jquery 的功能。我将所有内容包装在 $(window).load 中(使用 document.ready 不起作用,可能在 js 之前调用创建元素的 ajax 调用)。 在这个页面中有一个计时器,它会在 5 分钟后更新通过 ajax/jquery 调用相同函数的 div 的内容。 更新后拖放不再起作用,是 jquery 无法处理新创建的对象的问题。 那么我必须做些什么才能使事情变得正确? 我是否应该在每次更新后创建一个新事件并将此自定义事件的拖放绑定到 .bind/.trigger ?
希望你明白我的意思
【问题讨论】:
【参考方案1】:您应该为此使用 live
或 delegate
。
【讨论】:
好的,但是我需要在 ajax 调用完成时创建一个新事件,不是吗?如果不是在哪个事件上,我必须绑定直播 您只需要在页面加载时使用 jQuery 选择器声明该事件。当新元素(例如通过 AJAX)添加到页面时,jQuery 会自动检测这些新元素并绑定事件。【参考方案2】:你看过jsTree 插件吗? IT 为您处理 ajax 请求、拖放和主题化。
【讨论】:
你是在使用 jQuery UI 可拖动之类的还是从头开始编写的? 我用的是jquery的ui库以上是关于使用 ajax 调用处理新对象创建的自定义事件?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 UIMessage 框架创建用于处理电子邮件的自定义对象
我创建自定义EventEmitter时不应该调用.emit吗?