Answers:
就在这里 :
Drupal.behaviors.YourBehaviour = {
attach: function(context, settings) {
$('#yourform').ajaxComplete(function(event, xhr, settings) {
if ($(event.target.id) == 'the-id-of-your-item') {
// Your code here
}
});
}
}
对于jQuery 1.8+版本,似乎您现在必须将.ajaxComplete函数附加到文档,而不是表单或视图本身(请参见http://api.jquery.com/ajaxcomplete/)。
以下代码在D7上使用Jquery 1.10和Views 7.x-3.8为我工作,其中“ your_view_id”是在视图的“其他”设置面板中设置的视图的计算机名。在事件,xhr和设置中还有很多其他信息可以用来确定ajax结果是否适合您想要的视图,但这适用于我的情况:
jQuery(document).ajaxComplete(function(event, xhr, settings) {
if(typeof settings.extraData != 'undefined' && typeof settings.extraData.view_display_id != 'undefined') {
switch(settings.extraData.view_display_id){
case "your_view_id":
console.log('your_view_id ajax results!');
break;
default:
console.log('some other ajax result...');
break;
}
}
});
给定的解决方案都不适用于Drupal 7.24,jQuery 1.11和Views 7.x-3.8。
什么user1193694建议是不坏,但设置对象,我收到没有足够的而额外参数。
解析设置对象时,我看到settings.data属性包含“ view_name = ”和您视图的计算机名称,因此这就是我要过滤的内容:
jQuery(document).ajaxComplete(function(event, xhr, settings) {
// see if it is from our view
if (settings.data.indexOf( "view_name=your_views_name") != -1) {
console.log('your_view_id ajax results!');
}
});
将“ your_views_name ” 替换为视图的计算机名。
Drupal.behaviors.YourBehaviour = { attach: function() { $('#yourform').ajaxComplete...