jQuery:如何将事件附加到类内新创建的元素
jQuery: How to attach an event to newly created element inside class
我正在尝试创建一个Object类,该类将获取数据并创建元素列表。我还想在激发类的方法的新LI上附加一个点击事件。但是,当使用时
el.click(function() {
this.method();
});
this
不再引用Class,因此单击li
会出现未定义的方法错误。关于如何将类方法附加到新创建的元素的建议?
JS代码:
if (typeof Object.create !== 'function') {
Object.create = function(o) {
function F() {}
F.prototype = o;
return new F();
};
}
var base = {
init: function(data) {
this.data = data;
this.show_data();
},
show_data: function() {
for (i = 0; i < this.data.bindings.length; i++) {
var $item = $('<li>' + this.data.bindings[i].ircEvent + '</li>');
$item.click(function() {
this.show_clicked(i);
});
$('#it').append($item);
}
},
show_clicked: function(index) {
console.log('clicked in method');
}
};
var extended = {
show_alert: function() {
alert('second class');
}
};
var myObj = {
"bindings": [
{
"ircEvent": "PRIVMSG",
"method": "newURI",
"regex": "^http://.*"},
{
"ircEvent": "PRIVMSG",
"method": "deleteURI",
"regex": "^delete.*"},
{
"ircEvent": "PRIVMSG",
"method": "randomURI",
"regex": "^random.*"}
]
};
$(document).ready(function() {
var baseObj = Object.create(base);
baseObj.init(myObj);
});
Fiddle:http://jsfiddle.net/kmfstudios/EwC3r/5/
为了使方法在click函数中工作,只需引用包含对象的全局变量即可。
线路:
this.show_clicked(i);
应更改为:
base.show_clicked(i);
如果希望索引值显示在最终结果中,则必须将其作为数据传递,或者使用jquery来确定单击了哪个索引。
这是一个更新的小提琴,工作-http://jsfiddle.net/EwC3r/4/
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- AngularJs指令,该指令创建内部有数据对象的新指令
- 创建新属性后的 JSON 空属性
- 两个指令创建新的继承的和隔离的作用域-元素得到哪个
- 如何基于数组值创建新实例
- Jquery:为新数据创建寻呼机(next-prev按钮)
- Javascript对象创建-创建许多对象
- 新动态创建的(通过javascript)html内容在头中看不到以前使用的javascript文件
- 每次提交表单时都使用新名称创建对象
- 新对象创建问题
- JavaScript 新日期创建错误
- 如何创建创建关联数组
- 如何使用stripe.js为新客户创建令牌
- 打开一个新窗口创建一个新会话
- 如何从Alfresco UI页面中获取密码,该页面已由admin为新用户创建
- 为新元素创建侦听器
- 动态创建/创建变量's字典并打印
- 在JScript中:我可以枚举通过新ActiveXObject()创建的对象上的方法
- jQuery/JS插件,为新用户创建网站介绍/展示
- 烬数据没有为新实例创建id