我有一个自我调用的JavaScript文件,我正在尝试在onClick事件中获取moduleID。

我在这里做错了什么?还要注意的另一件事是,我将其中的几个文件作为“小部件”包括在内,它们都具有自己的moduleID。恐怕如果我要将这个变量声明移到上方,使其成为全局变量,是否会干扰也声明了moduleID变量的其他小部件?

$(function() {

    // Define our vars
    var moduleID = 4,
        output = '';

... Some more stuff ...

});

//Listen for button click
$('[name=adminSearchGo]').click(function() {
    alert(moduleID); // No Access
});

最佳答案

在函数内部定义的任何内容都不能在函数外部访问。

您可以做的是将绑定放在$(function(){...})内,以便可以看到变量。

$(function() {

    // Define our vars
    var moduleID = 4,
        output = '';

  //Listen for button click
  $('[name=adminSearchGo]').click(function() {
    alert(moduleID); // No Access
  });

});


另外,根据该脚本的运行位置,将.click绑定置于$(function(){...})之外可能会无法正常工作,因为该元素可能尚不存在。 $(function(){...})的全部目的是在DOM准备就绪时调用该函数。

09-20 09:05