2014-01-12 6 views
-1

Я хочу вызвать функцию JavaScript, которую я создал после вызова события JQuery. Я определил функцию, называемую scrambleDot раньше, как это var scrambleDot = new function() { //my code }. Вот код, который я пытался использовать:Вызов пользовательской функции в JQuery

$('#reveal').click(function() { 
    $('.cover').css({'visibility':'hidden'}); 
    $('#under').css({'visibility':'visible'}); 
}) 
$('#conceal').click(function() { 
    $('scrambleDot'); 
}) 

})

+3

Это должно быть 'var scrambleDot = function() {...}', no 'new', и для его вызова просто выполните' scrambleDot() ' –

+0

, пожалуйста, дайте больше объяснений –

+2

эй KyleMaclean, не нужно обескураженными вниз. StackOverflow может быть сложной аудиторией. Держись! Не сдавайся! –

ответ

4

Вы должны назвать его так же, как:

scrambleDot(); 

Чтобы определить функцию, вам не нужен оператор new , поэтому у вас должно быть:

var scrambleDot = function() { //my code } 

Если оно по-прежнему вызывает ошибку, это означает, что оно было определено в других s справиться. Для того, чтобы сделать его глобально подъезд, сделать это при определении его:

window.scrambleDot = function() { //my code } 

Приветствия

2
  1. Мы должны использовать new ключевое слово, только тогда, когда функция используется в качестве конструктора для новых объектов. Таким образом, определение не должно использоваться new.

    var scrambleDot = function() { //my code } 
    

    Если функция не должна создаваться динамически, я бы рекомендовал

    function scrambleDot() { 
        ... 
    } 
    
  2. Чтобы вызвать функцию, просто сделайте

    scrambleDot(); 
    
1

Для этого вызовите функцию вместо выбора элемента как:

$('#reveal').click(function() { 
    $('.cover').css({'visibility':'hidden'}); 
    $('#under').css({'visibility':'visible'}); 
}) 
$('#conceal').click(function() { 
    scrambleDot(); 
}); 

А также, вы пишете функции, как:

function scrambleDot() { 
    // your code 
} 

Это лучшая практика, чем вариатор.

Смежные вопросы