Al igual que muchas otras preguntas similares aquí, estoy escribiendo mi primer plugin de jQuery. Está destinado a tomar un elemento seleccionado y reemplazar las opciones con elementos de lista seleccionables, para usar como muestras. Tengo la funcionalidad principal funcionando bien, pero necesito agregar la capacidad de llamar a otro método, lo que deshabilitará ciertas opciones. Mi problema es que, al hacer esto, debo vincular algunos elementos de clic y desvincular a otros.Complementos de Jquery, llamando a funciones de otros métodos
Actualmente mi encuadernación original está contenida en una función dentro de mi método 'init'. Necesito poder llamar a esa función desde otro método de "desactivación". Así que aquí hay un código:
(function($){
var methods = {
// Init method
init : function(options) {
// Set options
var
defaults = {
clickCallback: function(){} // Define empty function for click callback
}
, settings = $.extend({}, defaults, options)
// Function to bind options
function fnBindOptions(var1, var2, var3) {
// Stuff to bind elements
// Hit the click callback
settings.clickCallback.call(this);
}
return this.each(function() {
// Check that we're dealing with a select element
if(element.is('select')) {
// Loop through the select options and create list items for them
$('option', element).each(function() {
// Stuff to create list elements
// Bind click handler to the new list elements
fnBindOptions(var1, va2, var3);
});
}
});
// return
return this();
}
// Disable buttons method
, disable : function(options) {
// I need to access fnBindOptions from here
$(elementID).children('li').removeClass('disabled').each(function(){
fnBindOptions(var1, var2, var3);
});
}
};
Aquí es mi problema: Tengo que llamar a la función se unen en cada opción antes de su desactivación - pero no puedo acceder fnBindOptions desde dentro del método desactivar - y debido a fnBindOptions incluye una devolución de llamada de la variable 'configuración', tampoco puedo moverlo fuera del método 'init'.
Entonces, ¿alguien tiene algún consejo aquí?
Gracias!
brillante, que parece funcionar perfectamente . ¡¡Gracias!! –
Una gran respuesta, sin duda me ayudó, gracias. – Asciant
Aparece una advertencia de que es posible que los "métodos" aún no se hayan inicializado, ¿pasa esto a JSLint? –