【发布时间】:2014-01-22 17:46:32
【问题描述】:
我想将事件侦听器(例如“点击”)附加到以编程方式添加的 JavaScript 生成代码(表格的每一行)。通常,我通常会使用 jQuery 脏 on 方法来做到这一点,但它不起作用(似乎我的选择器太具体了。我不知道有什么方法可以用另一种方式做到这一点......
var STD.prototype.addTableWithEvent(id, eventName, eventFunction)
{
var ident = "webapp_table_"+ id;
var table = angular.element("<table id=\"#"+ ident +"\"></table>");
var line = angular.element("<tr></tr>");
// this is the line not working
jQuery("body").on(eventName, '#'+ ident +' tr', { std: this }, eventFunction);
line.appendTo(table);
this.$compile(table)(this.$scope);
table.appendTo('body');
};
然后以这种方式调用此函数:
var std = new STD();
std.addTable("example", "click", function() { console.log("working"); });
表格很好添加到页面,但是点击的时候没有调用事件函数。如果我为此改变:
jQuery("body").on(eventName, 'tr', { std: this }, eventFunction);
然后它可以工作,但对于每张桌子,这不是我想要的。 有没有办法用 Angular.js 或 jQuery 做到这一点?
【问题讨论】:
-
$.on根本不是脏。 -
@moonwave99 很脏,因为我觉得它很脏。
标签: javascript jquery angularjs jquery-events