我正在使用外部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>
答案 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();
}