2012-03-07 17 views
10

En Jquery, me gustaría desactivar cualquier complemento que desee cambiando el nombre de una variable. Sin embargo, el siguiente código no funcionajQuery - use la variable como nombre de la función

function disablePlugin(functionName) { 
    $('#divID').functionName('disable') 
} 

disablePlugin('sortable'); 

alguna idea acerca de cómo me las arreglo para hacer esto?

Respuesta

24

Esta es la forma en que lo haría que:

function disablePlugin(functionName) { 
    $('#divID')[functionName]('disable') 
} 

disablePlugin('sortable'); 

Esto funciona porque someObject.foo es lo mismo que someObject['foo']

+2

+1 para explicar cómo funciona. – bPratik

+0

Muchas gracias. Me ha funcionado como un encanto. Un montón de gracias una vez más. –

1

Para invocar la función pasada como una cadena, que podría hacer

function disablePlugin(functionName) { 
    $('#divID')[functionName]('disable') 
} 

disablePlugin('sortable'); 
Cuestiones relacionadas