답변:
예, 있습니다 :
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/ 참조 ).
다음은 Jquery 1.10 및 Views 7.x-3.8을 사용하여 D7에서 나에게 도움이되었습니다. 여기서 "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 제안하는 것은 나쁘지 않았다,하지만 설정은 내가하지 않았다받은 객체 extraData의 매개 변수를.
설정 객체를 파싱 할 때 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...