1
我一直在玩jQuery中的订阅元素AJAX事件。jQuery:触发加载数据的元素的本地AJAX事件
我有一个我用来加载AJAX响应的元素。如果有与该程序的当前上下文相关的数据,则仅显示该元素。
因此,我认为只要AJAX请求完成并在需要时将其隐藏起来,就会很好,很容易.show()。我想删除每次发出AJAX请求时都隐式地显示.show()元素的需要。
在jQuery中有.ajaxSuccess()和.ajaxComplete()。然而,这些将在任何AJAX请求完成/成功时触发,因此当在页面的其他部分加载数据时,我的隐藏元素将会显示.show()。
的解决方案似乎是(每jQuery的API参考。)使用ajaxOptions参数在事件处理函数:
$('.log').ajaxComplete(function(e, xhr, settings) {
if (settings.url == 'ajax/test.html') {
$(this).text('Triggered ajaxComplete handler.');
}
});
我不明白的是用于注册的事件处理程序的原因所有对特定元素的AJAX请求,除了能够使用$(this)外。我是否错过了一些东西,我可以注册一个针对某个元素的AJAX请求的事件处理程序吗?
如果不是,是否有任何事件驱动替代使用.url?我要问的原因是我广泛使用页面片段来跟踪页面状态,并且每当AJAX请求将数据加载到它时,事件处理程序.show()我的元素就会更容易。
编辑:发布标题语法。
你可以举一些你加载数据的地方的例子吗? – 2010-08-17 01:33:21
我的想法是,你想是这样的:
这是否有意义,还是我完全错过了点?
来源
2010-08-17 01:29:08 karim79
是的,这是有道理的,这是一个很难的词组。我的问题是,我想注册一个元素的本地AJAX事件处理程序。所以如果我有
,我需要一个非全局事件,当我为注册到$('#main')的处理程序执行$('#main')。load('bla.html')时触发。 – 2010-08-17 01:36:28