我试图将我的jQuery脚本中的所有选择器包装在变量中,以便更容易编辑和加速脚本。但是,我遇到了一些障碍。
当我使用以下代码时:
var docu = $(document);
docu.ready(function(){
if (status == 'confirm'){
$('#login').hide();
}
});
一切正常。但是,如果我执行以下操作(这是我尝试实现的目标),则hide()
功能不起作用且#login
div仍然可见。
var docu = $(document);
var loginElement = $('#login');
docu.ready(function(){
if (status == 'confirm'){
loginElement.hide();
}
});
我已检查status
变量是否设置正确,因此loginElement
变量似乎存在问题。有什么想法吗?
谢谢!
答案 0 :(得分:0)
在当前代码中,当文档尚未准备好时,您将创建loginElement。我建议你做以下事情:
$( document ).ready(function(){
var docu = $(document);
var loginElement = $('#login');
if (status == 'confirm'){
loginElement.hide();
}
});
答案 1 :(得分:0)
由于jQuery非常DOM-Orieneted,它在很大程度上依赖于$(document).ready
绑定。在DOM准备好之前运行的事件绑定代码将不受约束。
这就是你必须完成这项任务的原因:
var loginElement = $('#login');
在document.ready
内,否则无法找到与#login
匹配的元素。
答案 2 :(得分:0)
var docu = $(document);
var loginElement = $('#login');
docu.ready(function(){
if (status == 'confirm'){
loginElement.hide();
}
});
除了一个之外的每件事都很好..思考..是否有可能在文档准备好之前获得一个JQuery DOM对象.... ?????我想你得到了答案。
var docu = $(document);
docu.ready(function(){
var loginElement = $('#login');
if (status == 'confirm'){
loginElement.hide();
}
});
这样做是否有效