2014-01-19 198 views
1

我正在借助外部js文件与MVC4应用程序一起工作。在视图(.cshtml)文件中,我有一个函数,它根据按钮单击执行在网格中创建行的操作, 。 我已经定义了外部.js文件中的按钮单击。 但是,当我试图从该外部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> 
+0

“内部”函数是全局函数吗?它在被调用之前被定义了吗?你能在这里展示你的代码的精简版吗? – nnnnnn

+0

你能否提供如何在你的视图中包含'external.js'? – Grundy

回答

1

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

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

因为窗口是全球性的,名字是一样的,你既可以在外部脚本引用时使用window.myInternalMethod或myInternalMethod。

+0

对不起,仍然没有运气...;( – user2771399

+1

你能发表一些代码吗?很难看到发生了什么:) – joseeight

0

确保您的外部文件包含下面的内部

....... 

    <script> 

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

    </script> 

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

是有可能只有当你调用从HTML那里是内部的JavaScript有外部js文件..

例子: 一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(); 

}