将选择器放在变量中

时间:2014-04-10 13:02:56

标签: jquery variables

我试图将我的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变量似乎存在问题。有什么想法吗?

谢谢!

3 个答案:

答案 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();
      }

    });

这样做是否有效