我们如何使用javascript中的事件处理程序在公共函数内调用公共函数

时间:2016-11-22 12:43:50

标签: javascript oop

<div id="a"></div><br>
<div id="b"></div>
<script>
    function Con(id){
        this.id = id;
        var me = this;

        x = function(){ // public function
            console.log(this.id)
        }.bind(this);

        this.y= function(){ // public function
            console.log(me)
            html = "<a href='javascript:void(0)' id='mycls-"+this.id+"' onclick='x()'>hello-"+this.id+"</a>";
            document.getElementById(this.id).innerHTML = html;
        }
        this.y();
    }
    var v = new Con("a");
    var v1 = new Con("b");
</script>

我有javascript构造函数我想从y公共函数内部的链接调用x公共函数。我想得到正确的ID EX:如果我点击一个div它应该控制一个或如果我点击b div它应该控制台b但它总是只控制台b。

1 个答案:

答案 0 :(得分:0)

请像x参数一样传递x函数中的ID: onclick='x("+this.id+")'

x = function(arg){ // public function
    console.log(arg.id)
}.bind(this);

请查看总代码:

<div id="a"></div><br>
<div id="b"></div>
<script>
    function Con(id){
        this.id = id;
        var me = this;
        x = function(arg){ // public function
            console.log(arg.id)
        }.bind(this);

        this.y= function(){ // public function
            html = "<a href='javascript:void(0)' id='mycls-"+this.id+"' onclick='x("+this.id+")'>hello-"+this.id+"</a>";
            document.getElementById(this.id).innerHTML = html;
        }
        this.y();
    }
    var v = new Con("a");
    var v1 = new Con("b");
</script>