0

我有两个 Javascript 文件,我将大大简化以简化手头的问题。

form.js

function open_action_dialog(){
   // code to open the dialog..

   // If [Return] is pressed when focus is on the #action field, call the action confirmation function defined in the second javascript file.
   $('#action').keypress(function(e){
      var fn_name = "action_confirm";
      if(e.which == 13)
         window[fn_name]();
   });
}

blog.form.js

$(function (){
   $("#dialog_action_open").click(function() { 
       open_action_dialog(); 
   });

   function action_confirm(){
     alert('action confirmed');
     return;
   }
});

因此,在我的页面上,我有一个带有 id 的按钮,dialog_action_open单击时会打开操作对话框;这是第二个文件中的函数,成功调用了第一个文件中的函数。

在对话框中,有一个带有 id 的输入文本字段action,我在其中设置了它,因此如果用户[Return]在光标聚焦在该字段上时按下,它应该调用action_confirm()第二个文件中定义的函数。它确实拾取了按键事件,但不从第二个文件中调用该函数;在 Google 的代码检查器中,错误是:

未捕获的类型错误:对象 [object Window] 的属性“action_confirm”不是函数

所以,我的问题是我需要做什么才能从第一个文件中的函数内部成功调用第二个文件中的函数?请记住,我知道您不能立即调用稍后定义的函数。但是,即使我的 action_confirm() 函数是在从第一个文件调用它的函数之后定义的,考虑到调用是在页面加载之后发生的,更具体地说是在页面上的点击事件之后发生的,这种技术性是否没有意义?

我将不胜感激。

非常感谢。

4

1 回答 1

0

因为您尝试调用的函数被包装在另一个函数中,所以它对您的其他 JS 中的函数是不可见的。

你可以删除$(function (){(它正在关闭});

于 2012-05-23T23:50:17.603 回答