javascript - Jquery - 脚本导入但功能 "Not Defined"

标签 javascript jquery

我的 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 包含:

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);
    }
    ...
})

在我将一些代码导出到 .js 文件之前,代码运行良好。 但是现在 appearwindow 没有运行,控制台打印 ReferenceError: appearWindow is not defined

最佳答案

由于您已将函数添加到匿名函数下,因此其作用域在外部不可用。您可以通过以下方式进行:

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);
    }
    ...
})

在另一边你可以使用它:

$("#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"))

关于javascript - Jquery - 脚本导入但功能 "Not Defined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21508741/

相关文章:

javascript - ajax 中生成的 anchor 链接不起作用

javascript - 为什么要切片不纯的管道?

javascript - 使用 javascript/jquery,更新一组图像的 src 的最佳方法是什么?

jQuery $ ('head:first' ).prepend ('<link rel="stylesheet"type ="text/css"href ="' + absUrl + '"/>') 在 IE 中不起作用

javascript - IE 中非常相似的 jQuery 表达式之间的速度差异

JQuery animate() 持续时间只适用于某些 CSS 规则

javascript - 不明白为什么 replace() 方法没有按预期工作

javascript - 如何将其绑定(bind)到 jQuery 的事件?

javascript - NxN 棋盘的 TicTacToe 获胜逻辑

javascript - 如何一键打开多个外部网址而不被浏览器弹出窗口拦截器拦截?