使用jQuery切换类
我在这里有一个弹出元素:使用jQuery切换类,jquery,html,css,Jquery,Html,Css,我在这里有一个弹出元素: <div id="contactme" class="closed"> <a href="javascript:void(0);" onclick="toggle_contactme">Close</a> </div> <a href="javascript:void(0);" onclick="toggle_contactme">Open</a> 使用jQuery,我发现打
<div id="contactme" class="closed">
<a href="javascript:void(0);" onclick="toggle_contactme">Close</a>
</div>
<a href="javascript:void(0);" onclick="toggle_contactme">Open</a>
使用jQuery,我发现打开和关闭弹出窗口时出错,我不确定是CSS还是jQuery不正确
以下是单击“打开”或“关闭”按钮时的功能:
function toggle_contactme(){
if ($("#contactme").hasClass("closed")) {
$("#contactme").removeClass("closed").addClass("open");
}else if ( $("#contactme").hasClass("open") ){
$("#contactme").removeClass("open").addClass("closed");
};
}
当运行此代码时,它会打开弹出窗口但无法关闭,任何帮助都将不胜感激
小提琴:您可能还需要更改
打开/关闭按钮文本
我建议您以更具活力的方式进行:
<div data-togglable="contactme" data-hidden>
<a href="#" data-toggler="contactme"></a>
<p>lorem ipsum.....</p>
</div>
<a href="#" data-toggler="contactme"></a>
jQ:
您可能还需要更改打开/关闭按钮文本
我建议您以更具活力的方式进行:
<div data-togglable="contactme" data-hidden>
<a href="#" data-toggler="contactme"></a>
<p>lorem ipsum.....</p>
</div>
<a href="#" data-toggler="contactme"></a>
jQ:
要完全隐藏和显示元素,不应使用可见性:隐藏代码>。当然,它隐藏了元素,但它仍然占据了空间。您想使用display:none
以完全隐藏元素。jQuery为此调用了一些函数,这些函数将设置/取消设置元素的显示值
在本例中,由于您希望在这两种状态之间切换,请查看执行该操作的函数
工作示例:
编辑:对于动画版本,请签出,然后单击
工作示例(动画):
HTML
<a href="#" class="hidden">Close</a>
<a href="#">Open</a>
jQuery
$(function() {
$('a').click(function() {
// $('a').toggle(); // Unanimated
$('a').fadeToggle(); // Animated
});
});
要完全隐藏和显示元素,不应使用可见性:隐藏代码>。当然,它隐藏了元素,但它仍然占据了空间。您想使用display:none
以完全隐藏元素。jQuery为此调用了一些函数,这些函数将设置/取消设置元素的显示值
在本例中,由于您希望在这两种状态之间切换,请查看执行该操作的函数
工作示例:
编辑:对于动画版本,请签出,然后单击
工作示例(动画):
HTML
<a href="#" class="hidden">Close</a>
<a href="#">Open</a>
jQuery
$(function() {
$('a').click(function() {
// $('a').toggle(); // Unanimated
$('a').fadeToggle(); // Animated
});
});
把你的html改成这个
<div id="contactme" class="closed">
<a href="javascript:void(0);" onclick="toggle_contactme()">Close</a>
</div>
<a href="javascript:void(0);" onclick="toggle_contactme()">Open</a>
只需将您的html更改为
<div id="contactme" class="closed">
<a href="javascript:void(0);" onclick="toggle_contactme()">Close</a>
</div>
<a href="javascript:void(0);" onclick="toggle_contactme()">Open</a>
更改:
onclick="toggle_contactme"
致:
更改:
onclick="toggle_contactme"
致:
为什么不直接使用.toggleClass()
?而且onclick=“toggle\u contactme”
应该是onclick=“toggle\u contactme”(
)。这看起来可以工作,错误是什么?它应该可以工作,但由于某种原因,当我单击关闭链接时,它会打开然后不关闭啊一个愚蠢的小错误,关闭链接有()代码>从正在调用的函数结尾处缺失!顺便说一句,如果,你的后面会有一个分号。为什么不直接使用.toggleClass()
?而且onclick=“toggle\u contactme”
应该是onclick=“toggle\u contactme”(
)。这看起来可以工作,错误是什么?它应该可以工作,但由于某种原因,当我单击关闭链接时,它会打开然后不关闭啊一个愚蠢的小错误,关闭链接有()代码>从正在调用的函数结尾处缺失!你有一个分号来结束你的,如果
,顺便说一句,那么我可以只做$(“#联系我”).hide()吗代码>?刚刚用工作JSFIDLE更新,请查看!我使用可见性的唯一原因是:隐藏
是这样,我可以向它添加过渡持续时间,除非您知道如何向正在更改其显示的内容添加动画。当然,请签出,然后单击。这应该是你所需要的。那么我可以只做$(“#contactme”).hide()吗代码>?刚刚用工作JSFIDLE更新,请查看!我使用可见性的唯一原因是:隐藏
是这样,我可以向它添加过渡持续时间,除非您知道如何向正在更改其显示的内容添加动画。当然,请签出,然后单击。这应该是你需要的。