我有这个代码用于在我的PHP文件中显示登录和注册的内容:
<?php // LOGIN PART ?>
<div class="login-part"></div>
<?php // REGISTRATION PART ?>
<div class="registration-part"></div>
这在我的js文件中:
$(document).ready( function() {
// FOR REGISTRATION
$('span.logreg.reg').click(function () {
$('div.registration-part').append('<p>Registration</p>');
});
// FOR LOGIN
$('span.logreg.log').click(function () {
// insert html
$('div.login-part').append('<p>Login</p>');
});
});
现在,每次我点击一个跨度,它会显示文本登录或注册,根据单击的跨度。
多数民众赞成,但是我只需要添加一次,所以当用户在跨度上点击更多次时,它将不会添加更多文本。
删除()或空()不是一个选项,据我所知,因为我需要输入框内的信息(稍后会有输入框用于插入用户信息)留在那里而不是删除如果用户意外再次点击跨度。
但是,如果他点击另一个范围,它可以删除div中的html。例如。如果span.log处于活动状态,单击span.log后就不会发生任何事情,但是如果他点击span.reg,div.login-part中的html将被删除并显示注册文本。
如何做这样的事情?
答案 0 :(得分:2)
请尝试APi:.one
:(阅读您的问题,似乎您只需要使用login
添加.one
之后的HTML就可以解决此问题。
将处理程序附加到元素的事件。处理程序已执行 每个元素最多一次。
APi链接:http://api.jquery.com/one/
这种方式只会根据需要添加一次,并且您不会多次重复显示html。
希望这有帮助,请知道我是否遗漏了任何东西,
进一步位差异演示:http://jsfiddle.net/avSDa/9/使用适合您的.is(:empty)
。
代码就像这样
$('span.logreg.log').one('click', function () {
// insert html
$('div.registration-part').append('<p>Login</p>');
});