Javascript 和 Jquery 定义全局变量?

标签 javascript jquery

我正在尝试定义一个全局 jquery 对象变量,以便我可以从不同的函数访问它。

这就是我正在做的事情:

var object_list = $("#object_list");
var list_length = object_list.find("li").length;

$(document).on('keydown', '#object_list', function(event) {
    //both of these don't work
    alert(object_list);
    alert(list_length);
});

好吧,由于某种原因,这不起作用(第一个警报给我 NULL,第二个警报给我 0,这不是)。

为什么我的全局变量不起作用..??

谢谢!!

最佳答案

这不是范围问题 - 您的代码中存在拼写错误:

var object_list = $("#object__list"); // 2 underscores

$(document).on('keydown', '#object_list', function(event) { // 1 underscore

只要在父函数中声明 object_listlist_length 就应该可以工作。

或者,您可以将变量附加到 window 对象,这样它们就可以在代码中的任何位置使用:

window.object_list = $("#object__list");
window.list_length = object_list.find("li").length;

如上所述,鉴于您在 OP 中的代码,这应该不是必需的。

关于Javascript 和 Jquery 定义全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18290156/

相关文章:

javascript - 合并两个数组并创建一个单独的数组

javascript - 一般 Node.js/javascript 问题和事件循环

javascript - 如何动态添加元素到MixItUp?

javascript - 将复选框绑定(bind)到 AngularJs 中的对象值

javascript - 使用 grunt 将一个函数的多个部分连接并 uglify 到一个文件中

ajax - 让 jquery ajaxStop 每次只触发一次

javascript - 在每个图像之间显示下划线的灯箱

javascript - firebase "Uncaught TypeError: undefined is not a function"错误

javascript - 未捕获的范围错误: Maximum call stack size exceeded with setTimeout()

javascript - knockout koGrid 中的计算值