AJAX düğmesi olan bir form var. Tıkladığımda, beklendiği gibi bir sürü şeyi günceller, bu da iyidir.
AJAX çağrısı tamamlandığında çağrılan bir dinleyici oluşturmak için bir yol olup olmadığını merak ediyordum?
Teşekkürler
AJAX düğmesi olan bir form var. Tıkladığımda, beklendiği gibi bir sürü şeyi günceller, bu da iyidir.
AJAX çağrısı tamamlandığında çağrılan bir dinleyici oluşturmak için bir yol olup olmadığını merak ediyordum?
Teşekkürler
Yanıtlar:
Evet var :
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+ sürümleri için, şimdi, belgeye değil form veya görünümü kendisi (bkz .ajaxComplete işlevini eklemelidir görünüyor http://api.jquery.com/ajaxcomplete/ )
Aşağıdakiler benim için Jquery 1.10 ve Views 7.x-3.8 ile D7'de çalıştı, burada "your_view_id" görünümün "Diğer" ayarlar panelinde ayarlanan görünümün makine adıdır. Olay, xhr ve ajax sonucunun istediğiniz görünüm için olup olmadığını belirlemek için ayarlanması gereken birçok başka bilgi var, ancak bu durumum için çalıştı:
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;
}
}
});
Verilen çözümlerin hiçbiri Drupal 7.24, jQuery 1.11 ve Views 7.x-3.8 ile işe yaramadı .
Ne user1193694 önerdi kötü değildi, ama ayarlar ı yoktu aldığını nesne extraData parametresini.
Ayarlar nesnesini ayrıştırırken, settings.data uygun ' görünüm_adı = ' ve görünümünüzün makine adını içerdiğini gördüm , bu yüzden ne için filtreliyorum:
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!');
}
});
' Görüşleriniz_adı ' yerine görünümünüzün makine adını yazın.
Drupal.behaviors.YourBehaviour = { attach: function() { $('#yourform').ajaxComplete...