1

问题是,当我每次编写 HTML 标签的 id 时,下面的代码都有效。但是当我缓存它们时,它不会。我错过了什么?

这是我的代码:

var NewFormContainer=$("#NewUserFormContainer"), opener=$("#nufcOpen"), closer=$("#nufcClose"), NewForm=$("#NewUserForm");
$(function() {
    $( "#userType" ).buttonset();
    $(".btn").button();

    closer.button({
        icons: {
            primary: "ui-icon-closethick"
        }, text: false
    }).click(function(){
        NewFormContainer.slideUp("slow");
    });
    opener.click(function(){
        NewFormContainer.slideDown("slow");
    });
});

顺便说一句,控制台中没有错误。我也在使用 jQ-UI

4

2 回答 2

2

准备好后,您需要cache他们dom

$(function() {
    $( "#userType" ).buttonset();
    $(".btn").button();

    var NewFormContainer=$("#NewUserFormContainer"),
        opener=$("#nufcOpen"),
        closer=$("#nufcClose"),
        NewForm=$("#NewUserForm");

    closer.button({
      icons: {
        primary: "ui-icon-closethick"
      }, text: false
    }).click(function(){
        NewFormContainer.slideUp("slow");
    });

    opener.click(function(){
        NewFormContainer.slideDown("slow");
    });
});
于 2012-09-04T17:03:26.197 回答
1

当您缓存它们时,它们会在 document.ready 之前进行评估。试试这个:

var NewFormContainer="#NewUserFormContainer", opener="#nufcOpen", closer="#nufcClose", NewForm="#NewUserForm";
$(function() {
  opener = $(opener);
  closer = $(closer);
  NewFormContainer = $(NewFormContainer);
  NewForm = $(NewForm);
  ...
于 2012-09-04T17:03:38.940 回答