Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从另一个js文件中的变量调用函数_Javascript - Fatal编程技术网

Javascript 从另一个js文件中的变量调用函数

Javascript 从另一个js文件中的变量调用函数,javascript,Javascript,我有这个密码 //first.js var site = {}; //and functions are declared like that site.functionNames = function(){ //some codes }; //second.js $("#element").click(function(){ //more codes site.function; site.function(); console.log(site); }

我有这个密码

//first.js 
var site = {};

//and functions are declared like that
site.functionNames = function(){
    //some codes
};

//second.js
$("#element").click(function(){
    //more codes
   site.function;
   site.function();
   console.log(site);
});
如何从second.js click事件访问/调用first.js函数? 尝试了上面的那些,但都说网站是未定义的。不知道这是不是正确的方法

:编辑:

文件已按顺序声明,second.js位于其他文件之后

<script src="first.js" type="text/javascript"></script>
<script src="second.js" type="text/javascript"></script> 

只要您按照能够使用的顺序声明javascript文件

<head>
....
    <script src="first.js" type="text/javascript"></script> 
    <script src="second.js" type="text/javascript"></script> 
....
<head>

....
....
如果你颠倒顺序,就行不通了

    <script src="second.js" type="text/javascript"></script> 
    <script src="first.js" type="text/javascript"></script> 

只要您按照能够使用的顺序声明javascript文件

<head>
....
    <script src="first.js" type="text/javascript"></script> 
    <script src="second.js" type="text/javascript"></script> 
....
<head>

....
....
如果你颠倒顺序,就行不通了

    <script src="second.js" type="text/javascript"></script> 
    <script src="first.js" type="text/javascript"></script> 

只要您按照能够使用的顺序声明javascript文件

<head>
....
    <script src="first.js" type="text/javascript"></script> 
    <script src="second.js" type="text/javascript"></script> 
....
<head>

....
....
如果你颠倒顺序,就行不通了

    <script src="second.js" type="text/javascript"></script> 
    <script src="first.js" type="text/javascript"></script> 

只要您按照能够使用的顺序声明javascript文件

<head>
....
    <script src="first.js" type="text/javascript"></script> 
    <script src="second.js" type="text/javascript"></script> 
....
<head>

....
....
如果你颠倒顺序,就行不通了

    <script src="second.js" type="text/javascript"></script> 
    <script src="first.js" type="text/javascript"></script> 

除非函数是在同一文件中定义的,或者是在尝试调用函数之前加载的文件中定义的,否则无法调用该函数


函数不能被调用,除非它与试图调用它的函数在相同或更大的范围内

首先在first.js中声明函数fn1,然后在第二个中就可以得到fn1()

1.js:

function fn1 (){
    alert();
}
2.js:

fn1();
index.html:

<script type="text/javascript" src="1.js"></script>
<script type="text/javascript" src="2.js"></script>


来源:

除非函数是在同一文件中定义的,或者是在尝试调用之前加载的文件中定义的,否则无法调用该函数


函数不能被调用,除非它与试图调用它的函数在相同或更大的范围内

首先在first.js中声明函数fn1,然后在第二个中就可以得到fn1()

1.js:

function fn1 (){
    alert();
}
2.js:

fn1();
index.html:

<script type="text/javascript" src="1.js"></script>
<script type="text/javascript" src="2.js"></script>


来源:

除非函数是在同一文件中定义的,或者是在尝试调用之前加载的文件中定义的,否则无法调用该函数


函数不能被调用,除非它与试图调用它的函数在相同或更大的范围内

首先在first.js中声明函数fn1,然后在第二个中就可以得到fn1()

1.js:

function fn1 (){
    alert();
}
2.js:

fn1();
index.html:

<script type="text/javascript" src="1.js"></script>
<script type="text/javascript" src="2.js"></script>


来源:

除非函数是在同一文件中定义的,或者是在尝试调用之前加载的文件中定义的,否则无法调用该函数


函数不能被调用,除非它与试图调用它的函数在相同或更大的范围内

首先在first.js中声明函数fn1,然后在第二个中就可以得到fn1()

1.js:

function fn1 (){
    alert();
}
2.js:

fn1();
index.html:

<script type="text/javascript" src="1.js"></script>
<script type="text/javascript" src="2.js"></script>


来源:

浏览器正在按写入顺序读取
script
标记,除非
async
true
。因此,只需按您希望的方式放置脚本标记,浏览器就会在第一个标记之后执行第二个标记


编辑:

可能加载js文件时出错。检查浏览器开发工具。

浏览器正在按写入顺序读取
script
标记,除非
async
true
。因此,只需按您希望的方式放置脚本标记,浏览器就会在第一个标记之后执行第二个标记


编辑:

可能加载js文件时出错。检查浏览器开发工具。

浏览器正在按写入顺序读取
script
标记,除非
async
true
。因此,只需按您希望的方式放置脚本标记,浏览器就会在第一个标记之后执行第二个标记


编辑:

可能加载js文件时出错。检查浏览器开发工具。

浏览器正在按写入顺序读取
script
标记,除非
async
true
。因此,只需按您希望的方式放置脚本标记,浏览器就会在第一个标记之后执行第二个标记


编辑:

可能加载js文件时出错。检查浏览器开发工具。

这是一个工作示例

Test.html

<!DOCTYPE html>
<html class="html" lang="es-ES">
<head>
    <script src="scripts/jquery-1.8.3.min.js" type="text/javascript"></script> 
    <script src="tfirst.js" type="text/javascript"></script>
    <script src="tsecond.js" type="text/javascript"></script> 
</head>
    <body>
        <div class="fieldwrapper" name="field1" id="field1" />
            First name: <input type="button" name="first" onclick="site.functionNames('html')"><br>
            Last name: <input type="button" name="second" id="other"><br>       
        </div>  
    <body>
</html>
tsecond.js

var site = {};

//and functions are declared like that
site.functionNames = function(v){
    alert("hello " + v);
};
$(document).ready(function(){
    $("#field1").on('click', '#other', function () {            
        site.functionNames('second.js');   
        console.log(site);
    });
});

这是一个有效的例子

Test.html

<!DOCTYPE html>
<html class="html" lang="es-ES">
<head>
    <script src="scripts/jquery-1.8.3.min.js" type="text/javascript"></script> 
    <script src="tfirst.js" type="text/javascript"></script>
    <script src="tsecond.js" type="text/javascript"></script> 
</head>
    <body>
        <div class="fieldwrapper" name="field1" id="field1" />
            First name: <input type="button" name="first" onclick="site.functionNames('html')"><br>
            Last name: <input type="button" name="second" id="other"><br>       
        </div>  
    <body>
</html>
tsecond.js

var site = {};

//and functions are declared like that
site.functionNames = function(v){
    alert("hello " + v);
};
$(document).ready(function(){
    $("#field1").on('click', '#other', function () {            
        site.functionNames('second.js');   
        console.log(site);
    });
});

这是一个有效的例子

Test.html

<!DOCTYPE html>
<html class="html" lang="es-ES">
<head>
    <script src="scripts/jquery-1.8.3.min.js" type="text/javascript"></script> 
    <script src="tfirst.js" type="text/javascript"></script>
    <script src="tsecond.js" type="text/javascript"></script> 
</head>
    <body>
        <div class="fieldwrapper" name="field1" id="field1" />
            First name: <input type="button" name="first" onclick="site.functionNames('html')"><br>
            Last name: <input type="button" name="second" id="other"><br>       
        </div>  
    <body>
</html>
tsecond.js

var site = {};

//and functions are declared like that
site.functionNames = function(v){
    alert("hello " + v);
};
$(document).ready(function(){
    $("#field1").on('click', '#other', function () {            
        site.functionNames('second.js');   
        console.log(site);
    });
});

这是一个有效的例子

Test.html

<!DOCTYPE html>
<html class="html" lang="es-ES">
<head>
    <script src="scripts/jquery-1.8.3.min.js" type="text/javascript"></script> 
    <script src="tfirst.js" type="text/javascript"></script>
    <script src="tsecond.js" type="text/javascript"></script> 
</head>
    <body>
        <div class="fieldwrapper" name="field1" id="field1" />
            First name: <input type="button" name="first" onclick="site.functionNames('html')"><br>
            Last name: <input type="button" name="second" id="other"><br>       
        </div>  
    <body>
</html>
tsecond.js

var site = {};

//and functions are declared like that
site.functionNames = function(v){
    alert("hello " + v);
};
$(document).ready(function(){
    $("#field1").on('click', '#other', function () {            
        site.functionNames('second.js');   
        console.log(site);
    });
});


你是怎么访问/调用它的?这是不能复制的,只要代码是按顺序发布的,就应该复制work@adeneo它已经按顺序运行了,可能我调用它的方式不对。没有找到调用在运行时声明的变量/函数的正确方法。是否应该调用
site.functionNames()
?@JuanCarlosOropeza是我做的,但网站没有定义。你访问了/调用了它吗?这不能复制,只要代码按照发布的顺序,它就应该被复制work@adeneo已经在订购了,也许我叫错了。没有找到调用运行时声明的变量/函数的正确方法。你不应该调用
site.functionNames()
?@JuanCarlosOropeza我这么做了,但站点没有定义。你是如何访问/调用它的?这不能被复制,只要代码按发布的顺序,它应该work@adeneo它已经按顺序运行了,可能我调用它的方式不对。没有找到调用在运行时声明的变量/函数的正确方法。您不应该调用
site.functionNames()
?@JuanCarlosOropeza我这样做了,但站点未定义。您是如何访问/调用它的?这无法复制,只要代码在发布的顺序中,它就应该work@adeneo它已经按顺序运行了,可能我调用它的方式不对。没有找到调用在运行时声明的变量/函数的正确方法。是否应该调用
site.functionNames()
?@JuanCarlosOropeza我这样做了,但站点未定义。声明顺序变为