jQuery-如何将事件附加到DOM对象,并在不同的位置将处理程序绑定到它

jQuery - how to attach event to DOM object and bind a handler to it in distinct places?

本文关键字:位置 处理 绑定 程序 事件 jQuery- 对象 DOM      更新时间:2023-09-26

我有一个小的web应用程序,它包含表。单元格中的数据可能有多种类型,对于某些类型,用户必须能够定义自己的"编辑器"-例如,jQuery日期选择器。这个想法是让用户能够编写自定义回调,为单元格的编辑提供服务。

编辑过程后检索数据时出现问题:
例如-包含日期数据的单元格。用户点击它,用日期选择器选择日期,然后离开这个单元格,这会导致"模糊"事件。这必然导致:
-将单元格恢复到初始外观
-从"编辑器"中检索数据并将其放入单元格

检索到的数据必须存储在内部数据结构(骨干模型)中。我不想让用户自定义回调访问它。我认为用户可以将绑定到inputtextarea的事件对象返回给他的编辑器将使用的任何标记,以及他自己的处理程序,该处理程序将把单元格返回到初始状态,并返回必须保存到内部数据结构中并显示在<td/>标记中的值。

所以我的问题是——如何将事件绑定到对象,并将其传递给其他函数,以便为其附加适当的处理程序?

ps
目前,我决定通过向用户回调传递一个附加了特殊事件的对象来解决这个问题,用户必须在他的"blur"处理程序中触发该对象,并将从编辑器中检索到的值作为event.data 传递

试试这个:var myObject = _.extend({},Backbone.Events);

使用myObject触发事件并传递数据:myObjec.trigger("myEvent" , data);

在View的initialize()方法中将事件listner函数绑定到此事件:myObject.on("myEvent" , myFunction,this);