2015-02-09 5 views
0

Мне нужно сделать 2 вещи по щелчку. Первое происходит сразу, а второе происходит после того, как первое закончилось.Несколько обратных вызовов после события события jquery

Я пытаюсь связать функции как обратные вызовы, но это, похоже, не работает.

$(document).ready(function(){ 
    $('button').click(function(){ 
    // first thing 
    console.log('click'); 
    }, function(){ 
    // second thing 
    console.log('callback'); 
    }); 
}); 

Этот код регистрирует только второе сообщение. Мне нужно, чтобы он делал первый, затем второй. Каков правильный способ сделать это?

+1

Не можете ли вы вызвать функцию внутри первого обработчика для второго действия? –

+0

Попробуйте использовать события mousedown и mouseup, поэтому вы можете сделать это как: $ ('button'). Mousedown (function() {console.log ('FIRST');}). Mouseup (function() {console.log ('ВТОРОЙ');}); –

+0

Что такое «первая вещь», можете ли вы опубликовать код? – dfsq

ответ

3

Вы могли бы попробовать что-то вроде этого ... вызов второй функции при заключении первого:

$(document).ready(function() { 
    $('button').click(function() { 
     one(); 
    }); 
}); 

function one() { 
    // first thing 
    console.log('click'); 
    two(); 
} 

function two() { 
    // second thing 
    console.log('callback'); 
} 

DEMO

+0

Это работает, спасибо! – sanjaypoyzer

0

Просто добавьте вторую функцию внутри первого; в приведенном ниже случае я автоматически вызвал его.

$(document).ready(function(){ 
    $('button').click(function(){ 
    // first thing 
    console.log('click'); 
    (function(){ 
     // second thing 
     console.log('callback'); 
    })(); 
    }); 
}); 
Смежные вопросы