אובייקטים ב javascript
עבור סקריפטים מורכבים כדאי לחלק לקבצים ולהגדיר אובייקטים
אבל בהנתן הצורך בדרופל 7 לעטוף jquery בבלוק מיוחד אז לא ניתן לראות האובייקטים מקבצים שונים
השיטה לעשות את זה היא לקחת בדוגמת misc/drupal.js
ולהגדיר אובייקט מחוץ לבלוק של jquery שישמש כמו namespace ב C++
קובץ האובייקטים :
var MyLib = {};
(function($) {
MyLib.Obj1 = function(element) {
this.prop = $(element).find('.prop-name').text();
this.prop = parseInt(this.prop);
....
}
MyLib.Obj1.prototype.meth1 = function(factor) {
this.prop *= factor;
}
MyLib.Obj2 = function(element) {
this.prop = $(element).parentsUntil('.first-level', '.prop-name');
}
MyLib.Obj2.prototype.meth2 = function() {
$(this.prop).css('color', 'red');
}
MyLib.Obj3 = {
prop31:Drupal.settings.mysetting,
prop32:'someconst'
};
})(jQuery);ואז בקובץ אחר :
(function($) {
var obj1 = new MyLib.Obj1( $('.node') );
obj1.meth1(10);
var obj2 = new MyLib.Obj2( $('.block') );
obj2.meth2();
MyLib.Obj3.prop32 = 'otherconst';
})(jQuery);צריך לוודא שקובץ שמגדיר האובייקטים יופיע לפני ממי שמשתמש בהם, drupal_add_js נותנת האפשרות לשלוט בזה
- הבלוג של yakoub
- חברי האתר יכולים לשלוח תגובה - כניסה , הצטרפות.
