【发布时间】:2011-04-15 02:41:06
【问题描述】:
我有 C、C++ 和 Java 编程背景,现在正在为我正在从事的个人项目使用 Javascript 和 JQuery。
我已经为我的项目创建了主页,该主页应该是“登录/创建帐户/发送密码重置代码/重新发送激活码”页面。感兴趣的元素是:
- 包含当前表单的 div
- 一个 div 包含其他表单的锚点
- 一个包含前两个 div 的 div
页面最初以登录表单及其关联的锚 div 开始。单击锚 div 中的锚之一(例如“创建帐户”锚),调用 JQuery replaceWith() 方法将当前表单 div 和锚 div 替换为请求的表单 div 及其关联的锚 div。
代码有效...但每次单击锚点时只有一次。为什么是这样?我在使用 JQuery 元素之前将它们放在变量中,因此即使它们已从 DOM 中“删除”,它们仍然可用,或者我是这么认为的。谁能帮忙解释一下?
这里是代码(“.formAndLinksDivs”是给所有包含表单和锚 div 的 div 的类,“#content”是包含这些类型的 div 的页面的主 div):
var varCreateAccountFormAndLinksDiv;
var varLoginFormAndLinksDiv;
var varSendAnotherActivationCodeFormAndLinksDiv;
var varSendResetCodeFormAndLinksDiv;
$(function() {
varCreateAccountFormAndLinksDiv = $("#createAccountFormAndLinksDiv");
varLoginFormAndLinksDiv = $("#loginFormAndLinksDiv");
varSendAnotherActivationCodeFormAndLinksDiv = $('#sendAnotherActivationCodeFormAndLinksDiv');
varSendResetCodeFormAndLinksDiv = $('#sendResetCodeFormAndLinksDiv');
$(".ajaxLinkCreateAccount").click(function() {
$('#content > .formAndLinksDivs').replaceWith(varCreateAccountFormAndLinksDiv);
$(varCreateAccountFormAndLinksDiv).effect('slide', {direction: "down", distance: $(this).height()});
});
$(".ajaxLinkLogin").click(function() {
$('#content > .formAndLinksDivs').replaceWith(varLoginFormAndLinksDiv);
$(varLoginFormAndLinksDiv).effect('slide', {direction: "down", distance: $(this).height()});
});
$(".ajaxLinkSendAnotherActivationCode").click(function() {
$('#content > .formAndLinksDivs').replaceWith(varSendAnotherActivationCodeFormAndLinksDiv);
$(varSendAnotherActivationCodeFormAndLinksDiv).effect('slide', {direction: "down", distance: $(this).height()});
});
$(".ajaxLinkSendResetCode").click(function() {
$('#content > .formAndLinksDivs').replaceWith(varSendResetCodeFormAndLinksDiv);
$(varSendResetCodeFormAndLinksDiv).effect('slide', {direction: "down", distance: $(this).height()});
});
});
【问题讨论】:
标签: javascript jquery dom