2008-09-07 12 views
7

एक सामान्य जेनेरिक चयन "नियंत्रण" बनाने की कोशिश कर रहा है जिसे मैं गतिशील रूप से तत्व जोड़ सकता हूं, लेकिन मुझे सही काम करने में कार्य करने में परेशानी हो रही है।JQuery & Objects, हल्के विजेट बनाने की कोशिश कर रहे हैं

यही वह है जो मैंने शुरू किया था।

$select = $("<select></select>"); 
$select.addOption = function(value,text){ 
    $(this).append($("<option></option>").val(value).text(text)); 
}; 

अकेले ठीक काम किया लेकिन कभी भी $select.clone(true) है 'एड addOption() समारोह खो दिया है।

यह मेरा ऑब्जेक्ट दृष्टिकोण है लेकिन अभी भी कार्य काम नहीं करता है।

function $selectX() { 
    return $("<select></select>"); 
} 

$selectX.prototype.addOption() = function(value,text){ 
    $(this).append($("<option></option>").val(value).text(text)); 
}; 

हैक समाधान निर्माण के बाद मैन्युअल रूप से समारोह को जोड़ने के लिए है:

$nameSelect= new $selectX; 
$nameSelect.addOption = function(value,text){ 
    $(this).append($("<option></option>").val(value).text(text)); 
}; 

मैं गलत पेड़ भौंकने हूँ?

उत्तर

7

jQuery के लिए नई विधि को जोड़ने के लिए आप, jQuery.fn.methodName विशेषता का उपयोग करने की जरूरत है ताकि इस मामले में यह हो जाएगा:

jQuery.fn.addOption = function (value, text) { 
    jQuery(this).append(jQuery('<option></option>').val(value).text(text)); 
}; 

लेकिन ध्यान रखें कि इस addOption किसी भी $() कॉल का परिणाम से पहुँचा जा सकेगा।

0

नीचे दिए गए लिंक में, आपको एक प्लगइन के लिए नमूना कोड मिलेगा जो स्वचालित रूप से विजेट बनायेगा। आप इसे अपनी आवश्यकता के अनुसार अनुकूलित कर सकते हैं

http://sites.google.com/site/spyderhoodcommunity/tech-stuff/jquerydashboardwidgetplugin

संबंधित मुद्दे