আমার একটি ফর্ম রয়েছে যার একটি এজাক্স বোতাম রয়েছে। আমি যখন এটি ক্লিক করি, এটি প্রত্যাশার মতো একগুচ্ছ জিনিস আপডেট করে যা ভাল।
আমি ভাবছিলাম যে আজেএক্স কলটি সম্পূর্ণ হওয়ার সাথে সাথে এমন আচরণে শ্রোতা তৈরি করার কোনও উপায় আছে যা কল হয়ে যায়?
ধন্যবাদ
আমার একটি ফর্ম রয়েছে যার একটি এজাক্স বোতাম রয়েছে। আমি যখন এটি ক্লিক করি, এটি প্রত্যাশার মতো একগুচ্ছ জিনিস আপডেট করে যা ভাল।
আমি ভাবছিলাম যে আজেএক্স কলটি সম্পূর্ণ হওয়ার সাথে সাথে এমন আচরণে শ্রোতা তৈরি করার কোনও উপায় আছে যা কল হয়ে যায়?
ধন্যবাদ
উত্তর:
হ্যা এখানে :
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/ )
নিম্নলিখিতগুলি আমার জন্য ডি 7-তে জ্যাকিউরি 1.10 এবং ভিউজ 7.x-3.8 সহ কাজ করেছে, যেখানে "আপনার_ভিউ_আইডি" ভিউয়ের "অন্যান্য" সেটিংস প্যানেলে দেখানো মেশিনের নাম। ইভেন্ট, এক্সএইচআর এবং সেটিংসে অন্যান্য অনেক তথ্য রয়েছে যা আপনি চাইছেন এমন মতামতের জন্য এজাক্স ফলাফলটি রয়েছে কিনা তা নির্ধারণ করার জন্য কী অফ করার কী আছে, তবে এটি আমার পরিস্থিতির জন্য কাজ করেছে:
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 এবং প্রতি 7.x-3.8 ।
কি user1193694 প্রস্তাব খারাপ ছিল না, কিন্তু সেটিংস বস্তু আমি পেয়েছি ছিল না extraData প্যারামিটার।
সেটিংসের অবজেক্টটি বিশ্লেষণ করার সময় আমি দেখেছি সেটিংস.ডাটা যথাযথভাবে ' ভিউ_নাম = ' এবং আপনার দর্শনটির মেশিনের নাম রয়েছে, তাই আমি কী জন্য ফিল্টার করছি তা স্থির করে:
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...