संभव डुप्लिकेट:
In Javascript, can you extend the DOM?DOM तत्व का विस्तार करने के लिए कैसे (jQuery के बिना) एक वर्ग के रूप
मैं तत्व करने के तरीकों और गुण जोड़ने के लिए कोशिश कर रहा हूँ। यह एक वैश्विक वर्ग के रूप में सूचीबद्ध नहीं है। मैं इस तरह स्ट्रिंग का विस्तार कर सकते हैं:
String.prototype.dosomething = function { ... };
मैं इस तरह की कोशिश (यह बड़ा है, यह बुनियादी है):
function $id(str){
this.element = document.getElementById(str);
return element;
}
var myElem = $id('myId'); // WORKS !!!
$id.prototype.dosomethig = function (... };
var myValue = $id('myId').dosomething(); // DOESN'T WORK !!!
मैं अन्य तरीकों से कोशिश लेकिन बात यह हमेशा एक ही है, जब मैं कक्षा का विस्तार करने की कोशिश करें, यह काम नहीं करता है। इससे बचने का कोई रास्ता है क्या? मुझे पता है कि jQuery ऐसा करते हैं, लेकिन मैं अपना चालू करना चाहता हूं - अगर वे कर सकते हैं, तो मैं कर सकता हूं ... सही?
संपादित करें: पहले से ही सफारी और फ़ायरफ़ॉक्स में काम कर रहे एक कोड नीचे ...
Element.prototype.pos = function(){
var curleft = this.offsetLeft;
var curtop = this.offsetTop;
var scrleft = this.scrollLeft;
var scrtop = this.scrollTop;
var pElement = pElementScr = this.offsetParent
while(pElement){
curleft += pElement.offsetLeft;
curtop += pElement.offsetTop;
pElement = pElement.offsetParent;
}
while(pElementScr){
scrleft += pElementScr.scrollLeft;
scrtop += pElementScr.scrollTop;
pElementScr = pElementScr.offsetParent;
}
return {x:this.offsetLeft, y:this.offsetTop};
}
यह एक div अन्य divs का एक बहुत की भी भीतरी की स्थिति देता है। मैं अपनी लाइब्रेरी के कई अन्य मुद्दों को हल करने के बाद, आईई 8 में परीक्षण करने की कोशिश करूंगा।
आप पढ़ना चाहिए http://perfectionkills.com/whats-wrong-with-extending-the-dom/ –
AFAIK, jQuery ऐसा नहीं करती है। वे एक रैपर प्रदान करते हैं, लेकिन डोम प्रोटोटाइप को छूने से बचें। – tucuxi