简体   繁体   English

Jquery - 导入的脚本但功能“未定义”

[英]Jquery - Script Imported But Functions “Not Defined”

My HTML: 我的HTML:

<script type="text/javascript" src="js/myjs.js"></script>
<script>
...
$("#enviornment").hide().delay(1200).css({'display':'block', 'opacity':'0'}).animate({'opacity':'1'}, 300, function() {
    $("#main").css("display", "none");
    appearWindow($(".window.q"));
...
</script>

myjs.js contains: myjs.js包含:

if ("undefined" == typeof jQuery)throw new Error("Nviornment requires jQuery");
$(function() { 
    ...
    function appearWindow(target) {
        changezindex(target);
        target.hide().css({'display':'block', 'opacity':'0'}).animate({'opacity':'1'}, 300)
        target.find(".help").css({'display':'block', 'opacity':'0', 'right':'-40px', 'position':'absolute', 'width':'100%'}).animate({'opacity':'1','right':'0px'}, 580);
    }
    ...
})

The code ran fine before I exported some code into a .js file. 在将一些代码导出到.js文件之前,代码运行正常。 But now appearwindow doesn't run, and the console prints ReferenceError: appearWindow is not defined 但是现在appearwindow没有运行,并且控制台打印了ReferenceError: appearWindow is not defined

Since you have added your function under Anonymous function hence its scope will not be available outside. 由于您已在Anonymous函数下添加了函数,因此其范围将无法在外部使用。 You can do it in following way: 您可以通过以下方式执行此操作:

if ("undefined" == typeof jQuery)throw new Error("Nviornment requires jQuery");
$(function() { 
    ...
    window.appearWindow = function(target) {
        changezindex(target);
        target.hide().css({'display':'block', 'opacity':'0'}).animate({'opacity':'1'}, 300)
        target.find(".help").css({'display':'block', 'opacity':'0', 'right':'-40px', 'position':'absolute', 'width':'100%'}).animate({'opacity':'1','right':'0px'}, 580);
    }
    ...
})

and on other side you can use it: 另一方面你可以使用它:

$("#enviornment").hide().delay(1200).css({'display':'block', 'opacity':'0'}).animate({'opacity':'1'}, 300, function() {
$("#main").css("display", "none");  
// either by
appearWindow($(".window.q"));  
// or by this  
window.appearWindow($(".window.q"))

I think it's a scope issue. 我认为这是一个范围问题。

Where is located your function appearWindow(target){.... ? 你的功能在哪里出现窗口(目标){....?

is it inside a global anonymous function like 它是否在全局匿名函数中

(function(){
    ....
    appearWindow(target){
        ....
    }
    ....
})()

if so, you cannot access your function from outside 如果是这样,您无法从外部访问您的功能

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM