将对象的方法绑定到元素的事件
Bind a method of an object to an event of an element
我想将对象的方法绑定到元素的事件。例如:
function ABC()
{
this.events_list = function() {
}
this.events_list.clickElement = function() {
alert("hello world");
}
this.bindEvents() = function() {
$("#element").click(this.events_list.clickElement);
}
}
var _abc = ABC();
_abc.bindEvents();
上面的代码没有将click事件绑定到clickElement
方法。
this.bindEvents() = function() {
去掉第一组括号,它们没有意义。
this.bindEvents = function() {
您还需要使用new ABC()
来构造一个新的ABC
对象;单独的ABC()
会将this
绑定到全局对象,这绝对不是您想要的。
此外,如果this.events_list
实际上不是一个函数,而是其他函数的容器,那么不要将其作为函数。
this.events_list = {};
最后,请记住使用分号。
在调用_abc.bindEvents()
之前是否存在#element
。你可以将其全部包装在中
$(document).ready(function() {
var _abc = ABC();
_abc.bindEvents();
});
function ABC()
{
this.events_list = function() {
}
this.events_list.clickElement = function() {
alert("hello world");
}
this.bindEvents() = function() {
$("#element").click(this.events_list.clickElement);
}
}
需要查看更多的用例才能做更多的工作。
jQuery插件将省去您的头痛,而且编写起来很简单:
<input type="checkbox" name="chk1" class="clickable" />check me<br />
<div name="item 2" class="clickable">click me<div>
使以上每个项目都可以点击:
(function( $ ) {
$.fn.bindevents = function() {
events_list = {
clickElement : function() {
alert("hello world from " + $(this).attr('name'));
}
};
this.each(function() {
$(this).bind('click', events_list.clickElement);
});
};
})( jQuery );
$('.clickable').bindevents();
相关文章:
- 元素事件处理程序到EXT.js面板中
- 浏览器中的javascript和td元素事件属性
- 主干清理元素事件
- 影响类的所有成员而不是一个元素事件的插件正在发生
- AngularJS - ngRepeat.在 ng 重复重新渲染后,需要将焦点集中在相同的元素事件上
- 在jQuery中,如何触发mootools中添加的元素事件
- 允许 Raphael/SVG 元素事件通过顶部分层的 HTML 触发
- CanJS未来元素事件绑定
- 重新选择所选选项时,Javascript/jQuery选择元素事件
- 类变量在元素事件中不可见
- 修改元素'事件函数的参数
- 如何过滤掉事件处理程序中的子元素事件
- 要求Javascript关注多个元素事件的模式
- 允许先触发其他绑定元素事件
- Firefox扩展不能覆盖元素事件
- 如何获取"mouseup"之后的元素事件完成
- 用于文档防止元素事件的Onclick事件
- 如何获取触发“onclick”的元素事件
- 向由子元素事件触发的表单元格添加类/从中删除类
- JavaScript在元素加载后立即绑定元素事件