将单击绑定到驻留在不同(但包括在第一个)文件中的函数

时间:2015-01-14 12:45:38

标签: javascript jquery

我的页面以禁用按钮开始,没有点击处理程序。稍后,当进行一些更改时,将启用该按钮。为了澄清,我在文件B中包含了文件A。

我目前的设置是:

档案A

function enableButton() {
    $("#Accept").on("click", clickAccept);
}

function clickAccept() {
    // do stuff
}

文件B (在另一个功能中)

enableButton();


这按预期工作。然而,当我移动一些东西时,我尝试了以下内容:

档案A

function clickAccept() {
    // do stuff
}

文件B (在另一个功能中)

$("#Accept").on("click", clickAccept);

每当我点击按钮时,它都会在jquery.min.js中触发Uncaught TypeError: undefined is not a function。当我从控制台调用函数clickAccept()时,它将无误地执行。

这让我相信实际的约束并没有成功。我认为,这似乎有点奇怪,只要包含JavaScript文件,它们在技术上不同于不同的文件并不重要。这是预期的行为吗?

1 个答案:

答案 0 :(得分:0)

应该是这样的:

function enableButton() {
    $("#Accept").on("click", function(){
        clickAccept();
    });
}

应该包含在一个函数中,并作为函数调用