对象的事件委托;如何倾听事件
Event delegation for objects; How to listen for events?
如何侦听javascript对象上的自定义事件?我正在尝试在触发事件后激发应用程序级对象的方法,但与DOM
元素不同,我无法注册对象的侦听器。
如何构建应用程序以侦听触发的事件,然后执行操作?
js:
$(document).ready(function(){
var app = {};
app.doStuff = function(){ alert("Yo!");};
$(app).on("myCustomEvent", function(){
alert("doing stuff");
app.doStuff();
});
$("body").on('click', "#trigger", function(){
alert("triggered");
$(this).trigger("myCustomEvent");
});
});
在jsbin中重新生成:http://jsbin.com/zopubuso/1/edit
这背后的原因:
我正在创建一个主干应用程序,其中app
对象中有一个全局事件通风口。我试图通过触发事件来交流观点:
即。
app.on("myEvent", MyView.model.doStuff);
app.trigger("myEvent");
但我无法启动活动。
try:
jquery触发器:
$(app).trigger("myCustomEvent");
http://jsfiddle.net/9w8A5/
触发骨干事件:
首先,您需要使用Backbone.Events
:扩展对象
var app = {};
_.extend(app, Backbone.Events); // underscore.js '_.extend', We can also use jquery '$.extend()'
... on("myCustomEvent")...
app.trigger("myCustomEvent");
演示:http://jsfiddle.net/A5484/1/
更新自agconti。
以下是一种在主干网中完成附加事件的简单方法:
var app = _.extend({}, Backbone.Events);
var myView = Backbone.View.extend({
initialize: function(){
... other configuration stuff ...
app.on( "myCustomEvent", function(){
this.doStuff();
}, myView);
},
doStuff: function(){ alert("Yo!"); }
});
app.trigger('myCustomEvent');
*
使用主干的事件对象比像我试图做的那样用app.on();
附加侦听器更有优势。
相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 对iPad上的点击事件反应缓慢
- 事件和状态
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- 从控制器返回后Ajax启动事件激发
- 如何从画布上的某个移动事件中获取X和Y
- Jquery:未触发select事件
- JsFiddle上的鼠标事件不起作用
- 如何倾听孩子们的心声;s儿童停止传播的事件
- 对象的事件委托;如何倾听事件
- 倾听外部事件.Bash到NodeJS的桥
- 如何倾听“变化”?事件,同时也绑定到属性