案例,当“document.ready”阻碍时
我有php文件,在这个文件中我有这个代码:
$(document).ready( function () { var myvar = ; });
在costum.js文件中我有代码:
$(document).ready( function () { alert(myvar ); });
这不起作用,错误consol返回“myvar未定义”
如果在php文件中我写这个(也就是说,没有“document.ready”)
var myvar = ;
在costum.js文件中,代码alredy正在工作。 请告诉我为什么会这样?
试试吧
您的变量必须声明为全局(或者换句话说,在外部作用域中)才能从document.ready
函数中查看。
作为旁注language
属性不是必需的。 甚至type
也没有必要(如果你使用的是html5
doctype)
您的myvar
位于就绪函数的本地范围内。 将var
声明移到外部以使其成为全局变量并可供其他脚本使用。
但是,正如您刚刚分配给变量一样,无论如何都不需要等待DOMready。 只是用
顺便说一下, language
属性已被弃用 。
函数内部的局部变量仅在函数范围内可见。
当您在全局范围内声明变量时,它就是全局变量。
您可以通过以下方式将其公开到全局范围
$(document).ready( function () { var myvar = ; window['myvar'] = myvar; });