类未定义onClick事件

时间:2017-04-05 12:24:25

标签: javascript jquery class

我使用JS的新类语法。当我按下按钮时,我想从一个类中调用一个方法。为了实现这一点,我将此方法设置为静态。

class NoteController { // The controller class
    constructor() { // Initialization
        // ...
    }

    static CreateNote() { // The method to call - static
        // ....
    }
}




<!DOCTYPE html>
<html>

<head>

    // ....
    <script src="NoteController.js"></script> // Link the js file to the html file

</head>

<body>

    // ....
    <button type="button" id="btnCreateNote" onclick="NoteController.CreateNote()">Create</button> // call the method

</body>

</html>

当我点击按钮时,它说,NoteController没有定义。我真的没有,那里有什么不对。

我的项目文件夹的图片:

enter image description here

也许这有帮助。

3 个答案:

答案 0 :(得分:2)

编辑: 校正使其静止:

<script>
class NoteController { // The controller class
    constructor() { // Initialization
        // ...
        alert('constructor called');
    }

    static CreateNote() { // The method to call - static
        // ....
        alert('create note');
    }
}
//var nc=new NoteController();
//console.log(nc);
</script>


<button type="button" id="btnCreateNote" onclick="NoteController.CreateNote()">Create</button> // call the method

JSFiddle

这是您的代码的工作示例:

<script>
class NoteController { // The controller class
    constructor() { // Initialization
        // ...
        alert('constructor called');
    }

    CreateNote() { // The method to call - static
        // ....
        alert('create note');
    }
}
var nc=new NoteController();
console.log(nc);
</script>


<button type="button" id="btnCreateNote" onclick="nc.CreateNote()">Create</button> // call the method

工作JSFiddle

答案 1 :(得分:1)

由于缺少有关NoteController.js的信息,我假设您的NoteController.js具有以下代码。

    function NoteController()
    {
    //variables
    //sub functions
   function CreateNote()
     {
      //code
     }
    }

所以现在你需要创建函数的对象并调用它。

<script src="NoteController.js"></script>
<script>
var _noteController=new NoteController();
</script>

<body>
    <button type="button" id="btnCreateNote" 
onclick="_noteController.CreateNote()">Create</button> 
</body>

答案 2 :(得分:1)

将您的班级包含在<script>代码中,以便浏览器识别javascript代码并执行它!