在对象原型上定义单击行为

时间:2013-12-25 15:42:52

标签: javascript jquery

我想要一个表,当在tbody中单击tr时,会调用一个函数来向控制台写入内容。我希望这个对象是这样的

function FancyTable(table) {
    this.rows = $(table).find('tbody tr');
    //need to add the behavior in the event handler somewhere here
    this.rows.click = function () {
        console.log('clicked');
    }
}
FancyTable.prototype.getData = function (tr) {
    var row = $(tr);
    console.log(row.text());
}
var fancyTable = new FancyTable('#table1');
//Need to keep this behavior
$('#table1 tbody tr').click(function () {
    console.log('this needs to be attached to the FancyTable object');
});

我希望将所有点击行为封装在FancyTable对象中,而不必在页面中添加click事件处理程序。做这样的事情的基本方法是什么? Fiddle

节日快乐:)

1 个答案:

答案 0 :(得分:1)

click成员是一个采用回调函数的方法,您不会将新函数分配给click来绑定事件。

使用事件处理程序作为参数调用click,就像在页面中绑定事件时一样:

this.rows.click(function () {
    console.log('clicked');
});

小提琴:http://jsfiddle.net/Guffa/8DGXP/2/