2015-05-13 10 views
9

Come verificare se la funzione è su jquery, ma la funzione è in un altro file .js?Come verificare se la funzione esiste?

validation.js:

if ($.isFunction('payment')) { 
    $('[data-numeric]').payment('restrictNumeric'); 
    $('.cc-number').payment('formatCardNumber'); 
    $('.cc-exp').payment('formatCardExpiry'); 
    $('.cc-cvc').payment('formatCardCVC'); 
} 

questo è falso perché i pagamenti func è nelle payments.js.

+0

possibile duplicato di [Javascript verifica se la funzione esiste] (http://stackoverflow.com/questions/1042138/javascript-check-if-function-exists) – Liam

+1

Si desidera verificare se jQuery '$' ha la funzione definita . Ex. '$ .myFunc' – Tushar

+0

possibile duplicato di http://stackoverflow.com/questions/5999998/how-can-i-check-if-a-javascript-variable-is-function-type – ambodi

risposta

9

problema è risolto . le sue opere:

if ($.fn.payment) { 
    //do something 
} 
+1

Anche questo è risolto il mio problema: if ($ .fn.redactor) – EngineerCoder

17

Prova come questo

if (typeof payment === "function") 
{ 
    // Do something 
} 
+0

'if è funzione su jquery, ma la funzione è in un altro file .js ' – Tushar

8

tenta di controllare come i seguenti,

if (typeof payment !== 'undefined' && $.isFunction(payment)) { 
    $('[data-numeric]').payment('restrictNumeric'); 
    $('.cc-number').payment('formatCardNumber'); 
    $('.cc-exp').payment('formatCardExpiry'); 
    $('.cc-cvc').payment('formatCardCVC'); 
} 
+0

' if is function su jquery, ma la funzione è in un altro I file .js – Tushar

+1

sono irrilevanti in js @Tushar. Il "esiste" è se è nell'attuale ambito della finestra. I "file" aggiungono semplicemente oggetti (funzioni) all'ambito. A cosa stai puntando? – Liam

+0

@Liam Vuole verificare se jQuery '$' ha la funzione definita. Ex. $ .myFunc – Tushar

1

È possibile verificare se esiste una funzione utilizzando window

Per esempio

var fn = window['NameOfTheFunction']; 
if(typeof fn === 'function') { 
    doSomething(); 
} 

Se la vostra funzione nella payment.js è parte di una funzione autonomo, è necessario impostarlo in modo all'oggetto finestra può "vedere" con l'aggiunta di questo nella vostra funzione contenuta sé:

window.NameOfTheFunction = NameOfTheFunction; 
4
if (typeof yourFunctionName == 'function') { 
    yourFunctionName(); 
} 

funziona perfetto per Blogger.

Problemi correlati