如何在原型函数onclick事件中调用原型函数

时间:2016-11-22 08:39:28

标签: javascript

如何在JavaScript中的另一个原型函数onclick事件中调用原型函数?

function foo(){
    this.table = '';
}

foo.prototype.abc = function(){
    this.table = document.getElementById("tableID");
    if (table != null) {
        for (var i = 0; i < table.rows.length; i++) {
            for (var j = 0; j < table.rows[i].cells.length; j++)
            table.rows[i].cells[j].onclick = function () {
                this.xyz(this);
            };
        }
    }
}

foo.prototype.xyz = function(tableCell){
    alert(tableCell.innerHTML);
}

如果我只是调用此tableText函数而不是this.xyz它可以正常工作,但使用this.xyz会在控制台中发现错误this.xyz(this)不是函数

function tableText(tableCell) {
    alert(tableCell.innerHTML);
}

我的浏览器显示错误但不显示JSFiddle JS Fiddle

1 个答案:

答案 0 :(得分:1)

在这段代码中:

var send=true;

 $('.input-group.date').datepicker({
     todayBtn: "linked",
     keyboardNavigation: false,
     forceParse: false,
     language: 'es-ES',
     weekStart: 1,
     format: 'dd/mm/yyyy',
     enableOnReadonly:false,
     calendarWeeks: true,
     autoclose: true,
     todayHighlight:true
 }).on("changeDate", function(e) {
     if(send){
        modificarFechaAplicacionCliente($("#input_filtro_fecha_cliente").val());
        send=false;
     }

     setTimeout(function(){send=true;},200);
 });

table.rows[i].cells[j].onclick = function () { this.xyz(this); }; 代表this HTML对象,而不是td。您必须保留foo的引用并将其传递给foo函数,如下所示:

onclick