2015-05-13 22 views
9

Làm thế nào để kiểm tra xem chức năng trên jquery, nhưng chức năng là trong một tập tin .js?Cách kiểm tra xem chức năng có tồn tại không?

validation.js:

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

này là sai vì thanh toán func là trong payments.js.

+0

bản sao có thể có của [Kiểm tra Javascript nếu chức năng tồn tại] (http://stackoverflow.com/questions/1042138/javascript-check-if-function-exists) – Liam

+1

Bạn muốn kiểm tra xem jQuery '$' có hàm được xác định hay không . Ví dụ '$ .myFunc' – Tushar

+0

có thể trùng lặp của http://stackoverflow.com/questions/5999998/how-can-i-check-if-a-javascript-variable-is-function-type – ambodi

Trả lời

9

vấn đề được giải quyết . tác phẩm của mình:

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

Điều này cũng được giải quyết vấn đề của tôi: if ($ .fn.redactor) – EngineerCoder

17

Hãy thử như thế này

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

'nếu là chức năng trên jquery, nhưng chức năng là trong một tập tin .js' – Tushar

8

Hãy thử để kiểm tra như như sau,

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

' nếu là chức năng trên jquery, nhưng chức năng là khác Tệp .js' – Tushar

+1

không liên quan đến js @Tushar. "Tồn tại" là liệu nó có nằm trong phạm vi hiện tại của cửa sổ hay không. "Tệp" chỉ cần thêm đối tượng (hàm) vào phạm vi. bạn đang nhận được gì vào? – Liam

+0

@Liam Ông muốn kiểm tra xem jQuery '$' có chức năng được xác định hay không. Ví dụ $ .myFunc – Tushar

1

Bạn có thể kiểm tra nếu một chức năng tồn tại sử dụng window

Ví dụ

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

Nếu chức năng của bạn trong payment.js là một phần của một hàm khép kín, bạn cần phải đặt nó là như vậy đối tượng cửa sổ có thể "nhìn thấy" nó bằng cách thêm này trong chức năng chứa tự của bạn:

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

Nó hoạt động hoàn hảo cho Blogger.

Các vấn đề liên quan