如何从外部js文件方法调用内部脚本函数?

时间:2014-01-19 12:18:47

标签: javascript jquery function asp.net-mvc-4 call

我正在使用外部js文件处理MVC4应用程序。在视图(.cshtml)文件中,我有一个函数执行在网格中创建行的操作, 基于按钮单击。 我在外部.js文件中定义了按钮单击。 但是, 当我尝试从外部js文件方法调用内部脚本函数时,它会抛出一个异常,说明没有定义该特定方法。

我冲浪但却无法找到令人信服的答案..

我正在尝试的是什么?我应该如何实现?

那里的Js专家可以帮我解决这个问题吗?...

全部谢谢...;)

修改

这是在外部.js文件中:

    $('#AddRowButton').on('click', function () {
    window.CreateRow();
     }

在我看来:(。cshtml)

    <script>
    function CreateRow()
    {
     // creting row goes here...
    }

    window.CreateRow = CreateRow; //defined like what @joseeight suggested...
    </script>

3 个答案:

答案 0 :(得分:1)

这很可能是由于范围问题。内部脚本和外部脚本必须位于不同的范围内。解决这个问题的最简单,最骇俗的方法是将内部方法添加到Window中,并在外部访问它。

//Internal script
function myInternalMethod () {
   //some code..
}
window.myInternalMethod = myInternalMethod;

由于window是全局的,并且名称相同,因此在外部脚本中引用它时可以使用window.myInternalMethod或myInternalMethod。

答案 1 :(得分:0)

确保您的外部文件包含在内部

下方
 .......

    <script>

      function createRow(){
         console.log('created');
      }

    </script> 

  <script src = "external.js"></script>
</body>

答案 2 :(得分:0)

是的,只有当您从内部javascript所在的html调用外部js文件时才有可能...

示例: a.html

<html>
<head>
<script type="text/javascript">
    function displayAlert(){
        alert('displayAlert');
}
     </script>

    <script type="text/javascript" src="../../abc.js"></script>
  </head>
<body>
//call the sample() javascript function which is in abc.js
</body>
</html>

abc.js

function sample(){

displayAlert();

}