Me gustaría crear un control personalizado en javascript. El objetivo es crear un bloque de construcción que tenga métodos, propiedades y eventos y convertirlo en un div.¿Cómo puedo diseñar un control personalizado en Javascript (posiblemente usando jQuery)
Un ejemplo de uno de estos controles sería un calendario. Se convertiría en un div, tendría propiedades que definirían cómo se muestra y qué fecha se selecciona o resalta, tendría métodos para cambiar el mes actual o para seleccionar una fecha y se generarían eventos cuando se hace clic en un día o el mes actual es cambiado por una entrada del usuario.
Puedo pensar en muchas formas de implementar esto y no estoy seguro de cuál es la mejor manera. Me parece recordar que es malo aumentar los elementos DOM con propiedades y métodos, así que lo descarté. Un plugin jQuery parece una buena idea, sin embargo no estoy seguro si es apropiado crear un plugin para todos y cada método de mi control tendría por lo que entonces podría utilizarlo como:
$('#control').method1();
$('#control').method2();
Y si lo hago use jQuery, ¿dónde almaceno los datos privados de mi control?
Otra idea que obtuve fue crear un nuevo tipo de objeto que tendría una referencia a un div en el que podría representar sus elementos.
Entonces, ¿cuál es la forma preferida de hacerlo? Si puedo, me gustaría hacer esto como un complemento jQuery, pero necesitaría guías sobre cómo crear métodos y dónde almacenar datos privados. He marcado en Plugins/Authoring en el sitio web de jQuery y no ayudó mucho en este sentido.
Esta respuesta recibió menos votos que la respuesta de Joel, sin embargo, el segundo enlace contiene exactamente la información que estaba buscando. Así que lo voy a marcar como la respuesta aceptada. –