Самое простое решение - создать функцию 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);
});
Вы можете использовать EventEmitter2 , который делает подстановочные знаки. Проблема с тем, что вы используете, как вы говорите, так это, что существует так много событий, и вы можете создавать свои собственные. Вам нужно будет создать массив конкретных событий, о которых вы говорите, перебрать их и связать каждый по отдельности.
Вероятно, вы должны выбрать события, которые хотите прослушать, поместить их в массив и перебрать по каждому из них:
['click','mouseover'].forEach(function(ev) {
el.addEventListener(ev, function() {
console.log('event:', ev)
})
})
Чтобы получить события стандартного элемента.
var myObj = document.getElementById('someID');
for(var key in myObj){
if(key.search('on') === 0) {
myObj.addEventListener(key.slice(2), myFunction)
}
}
Но как @jeremywoertink упоминал, что возможны и другие события.
Более современная переписка с ответом @ roman-bekkiev:
Object.keys(window).forEach(key => {
if (/on/.test(key)) {
window.addEventListener(key.slice(2), event => {
console.log(event);
});
}
});