ड्रुपल व्यवहार की बेहतर समझ


51

मैंने आज ड्रुपल व्यवहारों के बारे में पढ़ा, और मैंने निम्नलिखित कोड लिखने की कोशिश की।

(function ($) {

  Drupal.behaviors.mymodule = {
    attach: function (context, settings) {
      $('#mymodule_id', context).change(function () {
        alert('Handler for .change() called.');
      });
    }
  };

}(jQuery));
  • है Drupal.behaviors.mymoduleनाम स्थान?
  • Drupal व्यवहार के लिए संदर्भ और सेटिंग पैरामीटर क्या हैं?
  • क्या यह बराबर है document.ready()?
  • क्या मैं किसी भी फ़ंक्शन को संलग्न कर सकता हूं?
  • क्या मैं जावास्क्रिप्ट फ़ंक्शंस को परिभाषित कर सकता हूं जिसे कहीं कहा जाएगा?

Lullabot का यह ब्लॉग पोस्ट JS व्यवहारों के आसपास की अवधारणाओं को समझाने का एक बड़ा काम करता है: lullabot.com/articles/…
स्टीव

जवाबों:


56

संक्षेप में, व्यवहारों का लाभ document.ready()यह है कि वे AJAX के माध्यम से भरी हुई किसी भी सामग्री पर स्वचालित रूप से फिर से लागू होते हैं। mymoduleआपका नाम स्थान है, जिसे अद्वितीय होने की आवश्यकता है। contextपृष्ठ का वह हिस्सा है जिसके लिए यह लागू होता है, उदाहरण के लिए एक फॉर्म का एक हिस्सा जिसे AJAX के साथ अद्यतन किया गया है। आप कई व्यवहार संलग्न कर सकते हैं, लेकिन मुझे लगता है कि आपको उनमें से प्रत्येक के लिए एक अद्वितीय नाम (मैमोड्यूल) का उपयोग करने की आवश्यकता है।

अधिक जानकारी के लिए निम्नलिखित संसाधनों पर एक नज़र डालें:


2

आसान शब्दों में, Drupal.behaviorsइसे लागू करने का एक बेहतर तरीका हैjQuery.ready

इसके विपरीत jQuery.readyजो केवल एक बार चलता है जब DOM तैयार होता है, Drupal.behaviorsपृष्ठ निष्पादन के दौरान कई बार चलाया जा सकता है।

उदाहरण के लिए, अनंत स्क्रॉल में, उपयोगकर्ता द्वारा अधिक बटन लोड करने पर अधिक तत्व लोड किए जाएंगे, इसलिए, प्रारंभिक लोड के बाद DOM बदल जाएगा।

क्या होगा यदि हम नए जोड़े गए तत्वों में कक्षाएं जोड़ना चाहते हैं? यहां ड्रुपल बिहेवियर काम आते हैं।

AJAX अनुरोध सहित हर अनुरोध पर व्यवहार निष्पादित किया जाएगा।

डीओपी लोड होने पर ड्रुपल संलग्न व्यवहारों को कॉल करेगा और यह भी जब यह अजाक्स द्वारा बदल दिया जाता है, दो तर्कों में गुजरता है

संदर्भ और सेटिंग्स

Drupal.attachBehaviors () को पहली बार कहा जाता है, संदर्भ चर में DOM का प्रतिनिधित्व करने वाला दस्तावेज़ ऑब्जेक्ट होता है, लेकिन बाकी कॉल के संदर्भ के लिए HTML का प्रभावित टुकड़ा होगा।

सेटिंग्स में PHP के माध्यम से जावास्क्रिप्ट पर पारित की गई जानकारी शामिल है, यह Drupal.settings के माध्यम से इसे एक्सेस करने के समान है।

इसके अलावा, मॉड्यूल Drupal.attachBehaviors () को भी कॉल कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.