在 jQuery 中,您可以使用如下回调:
$('#btn').on('click', function() {
// code
});
我怎样才能写出像 ie 这样的东西
foo.on('bar', function() {
// code
});
foo.on('buzz', function() {
//code
});
?
谢谢。
在 jQuery 中,您可以使用如下回调:
$('#btn').on('click', function() {
// code
});
我怎样才能写出像 ie 这样的东西
foo.on('bar', function() {
// code
});
foo.on('buzz', function() {
//code
});
?
谢谢。
下面的文章会有所帮助
如何在 jQuery 中创建自定义事件
jQuery 的 .trigger 方法是关键。您可以在任何时候触发具有新类型名称和任意数据的事件,例如
$.event.trigger({
type: "newMessage",
message: "Hello World!",
time: new Date()
});
处理程序现在可以订阅“newMessage”事件,例如
$(document).on("newMessage", newMessageHandler);
像那样:
var eventBus = function () {
var supportedEvents = ['bar', 'buzz'];
var subscribers = {};
for (var i = 0; i < supportedEvents.length; i++) {
subscribers[supportedEvents[i]] = [];
}
return {
on: function (event, action) {
subscribers[event].push(action);
},
trigger: function (event) {
var funsToCall = subscribers[event] || []; // empty array if unsupported event
for (var i = 0; i < funsToCall.length; i++) {
funsToCall[i](); // calling a function
}
}
}
}
然后您调用该eventBus
函数来获取一个对象,该对象将是您的foo
:
var foo = eventBus();
foo.on('bar', function () {
console.log('bar');
});
foo.on('buzz', function () {
console.log('buzz');
});
foo.trigger('bar'); // prints 'bar' to the console
foo.trigger('buzz'); // prints 'buzz' to the console