<button type="submit" data-id="23">Раз</button>
<button type="submit" data-id="23">Два</button>
<button type="submit" data-id="23">Три</button>
$(document).on('my:click', 'button', function (e) {
console.log($(this).text());
});
$(document).on('click', 'button', function (e) {
$('[data-id="' + $(this).data('id') + '"]').trigger('my:click');
});
var getData = (function () {
var defer,
name = 'CallbackRegistry_' + Math.round(1e6 * Math.random()),
_class = {
run: function (id, callback) {
defer = $.Deferred();
window[name] = this.methods[callback];
$.ajax({
url: '//learn.javascript.ru/files/tutorial/ajax/jsonp/user?user=' + id,
dataType: 'jsonp',
jsonpCallback: name
});
return defer.promise();
},
done: function (data) {
delete window[name];
defer.resolve(data);
},
methods: {
c1: function (data) {
console.log(data.name);
_class.done(data);
},
c2: function (data) {
console.log(data.age);
_class.done(data);
}
}
};
return _class;
})();
getData.run('1', 'c1').then(function (data) {
console.log('done: ', data);
getData.run('7', 'c2').then(function (data) {
console.log('done: ', data);
});
});