gpt4 book ai didi

toggleclass - Jquery 滑动切换 : Why does it reload my page?

转载 作者:行者123 更新时间:2023-12-01 06:15:52 24 4
gpt4 key购买 nike

我在使用两个幻灯片切换时遇到了一个奇怪的问题。 #bannerChoice 幻灯片工作正常,但 #search 幻灯片在打开时应与 #bannerChoice 重叠,但永远不会打开超过一半。相反,它会强制页面重新加载。

这是我的代码:

function bannerChoice()
{
$('#bannerChoice').slideToggle(function()
{
if($('#bannerChoice').is(':visible'))
{
$('html').css({overflow:"hidden",height:"100%"});
}
else
{
$('html').css({overflow:"auto",height:"2171px"});
}
});
}

function toggleForm()
{
$('#search').slideToggle(350);
return false;
}

<div id="bannerChoice">
<div id="bcText">Select a banner graphic:<br/></div>
<div id="bcImages">
<form action="#" method="post">
<input type="hidden" name="setBanner" id="setBanner" value="">
<img src="/media/profile/images/bgs/bg1_thumb.png"
onClick="setBanner(1,event);"/>
<img src="/media/profile/images/bgs/bg2_thumb.png"
onClick="setBanner(2,event);"/>
<img src="/media/profile/images/bgs/bg3_thumb.png"
onClick="setBanner(3,event)" />
<img src="/media/profile/images/bgs/bg4_thumb.png"
onClick="setBanner(4,event)" /><br/>
<span id="bcBttns">
<input type="submit" value="Submit" class="submit"
name="bttnSubmit" /><input type="button" value="Cancel"
onClick="bannerChoice()">
</span>
</form>
</div>

<div id="bcBG">&nbsp;</div>
</div>

<span onClick="toggleForm()">
<a href="" style="display:inline-block; color:#bbb; padding:0 13px;
line-height:70px;">link text</a></span>
<div style="padding-left:13px; z-index:9004">
<form id="search" method="post" action="#">
<input type="text" name="name" value="Name" style="width:112px"/><br/>
<input type="text" name="city" value="City" style="width:112px" /><br/>
<input type="text" name="state" value="State" style="width:112px" /><br/>
<input type="text" name="zip" value="Zip" style="width:112px" /><br/>
<input type="button" class="submit" style="margin:0 13px 0 13px;"
value="Search">
</form>
</div>

最佳答案

jQuery 不会导致您的页面刷新。当您单击跨度中的链接时,页面将转到 url“”,即重新加载当前页面。

您需要将 e.preventDefault() 添加到脚本中,以防止链接执行其默认操作(转到链接):

function toggleForm(e)
{
e.preventDefault();
$('#search').slideToggle(350);
}

您需要将事件添加到您的调用中:

onclick='toggleForm(event)'

bannerChoice() 不会重新加载页面,因为它位于取消按钮上,该按钮不会作为其默认操作的一部分进行发布。

正如其他人所说,内联 Javascript 不是一个好主意。它使代码不可读、难以调试,并且使您无法轻松地重用代码。没有(充分的)理由将内联 Javascript 与 jQuery 一起使用。

关于toggleclass - Jquery 滑动切换 : Why does it reload my page?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9606270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com