Прослушивание всех событий окна / DOM [дубликат]

Самое простое решение - создать функцию JavaScript и вызвать его для обратного вызова Ajax success.

function callServerAsync(){
    $.ajax({
        url: '...',
        success: function(response) {

            successCallback(response);
        }
    });
}

function successCallback(responseObj){
    // Do something like read the response and show data
    alert(JSON.stringify(responseObj)); // Only applicable to JSON response
}

function foo(callback) {

    $.ajax({
        url: '...',
        success: function(response) {
           return callback(null, response);
        }
    });
}

var result = foo(function(err, result){
          if (!err)
           console.log(result);    
}); 
8
задан user3780616 5 December 2014 в 18:40
поделиться

4 ответа

Вы можете использовать EventEmitter2 , который делает подстановочные знаки. Проблема с тем, что вы используете, как вы говорите, так это, что существует так много событий, и вы можете создавать свои собственные. Вам нужно будет создать массив конкретных событий, о которых вы говорите, перебрать их и связать каждый по отдельности.

0
ответ дан jeremywoertink 24 August 2018 в 17:20
поделиться

Вероятно, вы должны выбрать события, которые хотите прослушать, поместить их в массив и перебрать по каждому из них:

['click','mouseover'].forEach(function(ev) {
    el.addEventListener(ev, function() {
        console.log('event:', ev)
    })
})
2
ответ дан Mosho 24 August 2018 в 17:20
поделиться

Чтобы получить события стандартного элемента.

var myObj = document.getElementById('someID');
for(var key in myObj){
    if(key.search('on') === 0) {
       myObj.addEventListener(key.slice(2), myFunction)
    }
}

Но как @jeremywoertink упоминал, что возможны и другие события.

15
ответ дан Roman Bekkiev 24 August 2018 в 17:20
поделиться

Более современная переписка с ответом @ roman-bekkiev:

Object.keys(window).forEach(key => {
    if (/on/.test(key)) {
        window.addEventListener(key.slice(2), event => {
            console.log(event);
        });
    }
});
5
ответ дан ryanpcmcquen 24 August 2018 в 17:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: