我想在我的脚本开头声明几个变量。据我所知,全局变量只能在函数之外创建。下面是我正在使用的代码片段。当$ map的声明位于第2位时,代码按预期执行,但是在位置1时它不起作用。除了无法对我的声明进行分组的缺点之外,我想知道这种差异的原因是什么以及它有什么后果
var transMatrix = [1, 0, 0, 1, 0, 0];
var homeMatrix = [1, 0, 0, 1, 0, 0];
var $map = $('svg > g'); //1
$(document).ready(function () {
var $map = $('svg > g'); //2
zoomSVG($map, 2);
});
答案 0 :(得分:2)
你在1
中的方法的一个问题是,它是在dom准备就绪之前执行的那个时间点我们不确定引用的元素是否被加载所以它可能不会返回任何元素,这是原因在dom ready回调中添加jQuery代码。
所以最安全的方法是添加所有尝试在dom ready处理程序中获取dom元素的变量