繁体   English   中英

隐藏/显示div不起作用

[英]Hide/Show div not working

注意已经发布的问题不能解决我的问题。 上面是我的侧边菜单栏中的显示,我希望当用户单击链接时,其内容显示在同一页面上,而其他div内容隐藏。 我尝试了以下代码,但它们似乎不起作用。

  $('a.common').click(function() { var id = $(this).attr('href'); $(id).fadeIn('slow', function() { // Animation complete }); }); 
 <div id="container"> <div id="canvas"> <div id="nav"> <h2 id="title"> <i class="fa fa-sitemap"> </i> MENU</h2> <ul id="toggle"> <li> <div class="active border"> <a href="#div1" class="common">HOME</a> </div> </li> <li> <div> <span class="menu-icons fa fa-user"></span> <a href="#div2" class="common">ABOUT US</a> </div> </li> <li> <div> <a href="#div3" class="common">PORTFOLIO</a> </li> <li> <div> <a href="#">CONTACT</a> </div> </li> </ul> </div> <a href="#" class="toggle-nav" id="bars"><i class="fa fa-bars"></i></a> <div id="div1">TEST ONE</div> <div id="div2">TEST TWO</div> <div id="div3">TEST THREE</div> </div> </div> 

问题是您有$('a.button')而不是$('a.common')。您还希望CSS在开始时隐藏div。 而且,当您淡入新的div时,您需要隐藏当前的div。

 $('a.common').click(function() { var id = $(this).attr('href'); $("#divs div").hide(); $(id).fadeIn('slow', function() { // Animation complete }); }); 
 #divs div {display:none} 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="container"> <div id="canvas"> <div id="nav"> <h2 id="title"> <i class="fa fa-sitemap"> </i> MENU</h2> <ul id="toggle"> <li> <div class="active border"> <a href="#div1" class="common">HOME</a> </div> </li> <li> <div> <span class="menu-icons fa fa-user"></span> <a href="#div2" class="common">ABOUT US</a> </div> </li> <li> <div> <a href="#div3" class="common">PORTFOLIO</a> </div> </li> <li> <div> <a href="#">CONTACT</a> </div> </li> </ul> </div> <a href="#" class="toggle-nav" id="bars"><i class="fa fa-bars"></i></a> <div id="divs"> <div id="div1">TEST ONE</div> <div id="div2">TEST TWO</div> <div id="div3">TEST THREE</div> </div> </div> </div> 

问题出在您的jQuery选择器中:

//This ona means that you  are searching for tag a with class button
$('a.abutton').click(function() {})

//You should use:
$('a.common').click(function() {})

// Because your a tags has class 'common'

有2个问题

  1. 您的<li> <div>标记未正确关闭
  2. 最初,您并没有隐藏div,因此一旦单击它就可以淡入。

这是您的代码的小提琴https://jsfiddle.net/2tkfq87o/

第一件事是您的html出现错误。 <div>上未添加元素。 其次,您一开始就从未在所有div上调用hide(),因为它们都没有被隐藏。 你只有淡入淡出。 如果所有div都是可见的,则没有必要调用fadeIn。

所以先藏起来。 然后在单击时调用fadeIn,同时隐藏已经存在的div。

 $(document).ready(function() { $('a.common').click(function() { hideAllDivs(); var id = $(this).attr('href'); $(id).fadeIn('slow', function() { // Animation complete }); }); var hideAllDivs = function() { $('#div1').hide(); $('#div2').hide(); $('#div3').hide(); } hideAllDivs(); $('#div1').show(); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="container"> <div id="canvas"> <div id="nav"> <h2 id="title"> <i class="fa fa-sitemap"> </i> MENU</h2> <ul id="toggle"> <li> <div class="active border"> <a href="#div1" class="common">HOME</a> </div> </li> <li> <div> <span class="menu-icons fa fa-user"></span> <a href="#div2" class="common">ABOUT US</a> </div> </li> <li> <div> <a href="#div3" class="common">PORTFOLIO</a> </div> </li> <li> <div> <a href="#">CONTACT</a> </div> </li> </ul> </div> <a href="#" class="toggle-nav" id="bars"><i class="fa fa-bars"></i></a> <div id="div1">TEST ONE</div> <div id="div2">TEST TWO</div> <div id="div3">TEST THREE</div> </div> </div> 

显示/隐藏<div>标签不工作</div><div id="text_translate"><p>我有一个超链接,它应该在 onclick 事件期间一一调用 3 个 JS 函数。</p><pre> &lt;form name = "bulkcontactfrm" method="POST" action="&lt;%= servletPath %&gt;&gt; &lt;div id="saveDiv" layoutAlign="top" style="display:block;"&gt; &lt;table id="" align="left" border="0" cellpadding="0" cellspacing="0"&gt; &lt;tr&gt; &lt;td&gt; &lt;a href="javascript:void(0);" onclick="isAllowedToResubscribe(document.bulkcontactfrm); manipulateDIV(document.bulkcontactfrm); resubscribeCall(document.bulkcontactfrm);"&gt;&amp;#160;Re-Subscribe&lt;/zoniac:roundrect&gt;&amp;#160;&lt;/a&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/div&gt; &lt;div id="loadingDiv" class="cellWhiteBGFont" layoutAlign="top" style="display: block;"&gt;&lt;p&gt;&lt;img src="&lt;%=ImageMappingManager.getImageName("imgLoading")%&gt;" name = "b1"&gt;&amp;nbsp;&amp;nbsp;&lt;font size='3'&gt;&lt;b&gt;Please wait...&lt;b&gt;&lt;/font&gt;&lt;/p&gt; &lt;/div&gt; &lt;/form&gt;</pre><p> JS函数如下:</p><pre> // First function validate the data using ajax call function isAllowedToResubscribe(form) { //Client validation takes here processAjaxRequestPost('ajaxRequestPost','SimpleHandler','getResubscribeEmailValidationDetails',emilIDStr,sourcefromStr); } // Second function hide the content in UI and show the Processing image in &lt;DIV&gt; tag function manipulateDIV(form) { hideSaveDiv(); showLoadingDiv(); } function hideSaveDiv() { //hide the Re-Subscribe hyperlink document.getElementById('saveDiv').style.display='none'; } function showLoadingDiv() { //show the Processing image document.getElementById('loadingDiv').style.display='block'; } // Third function is for form submit using ajax call function resubscribeCall(form) { //processAjaxRequestPost('ajaxRequestPost','SimpleHandler','getResubscribeEmailDetails',emilIDStr,sourcefromStr); }</pre><p> 单击超链接验证 function 调用并获取成功后,出现构造消息,单击构造上的确定。 但是&lt;DIV&gt;标签并没有被隐藏,所以没有加载进度图像。</p></div>

[英]show/hide the <div> tag is not working

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 隐藏和显示div不起作用 div上的jQuery hide()和show()无法正常工作 在鼠标悬停时显示/隐藏div不起作用 Flexscroll在显示/隐藏div中不起作用 显示/隐藏div无效点击 onChange无法显示/隐藏div 显示/隐藏div功能不起作用 显示/隐藏<div>标签不工作</div><div id="text_translate"><p>我有一个超链接,它应该在 onclick 事件期间一一调用 3 个 JS 函数。</p><pre> &lt;form name = "bulkcontactfrm" method="POST" action="&lt;%= servletPath %&gt;&gt; &lt;div id="saveDiv" layoutAlign="top" style="display:block;"&gt; &lt;table id="" align="left" border="0" cellpadding="0" cellspacing="0"&gt; &lt;tr&gt; &lt;td&gt; &lt;a href="javascript:void(0);" onclick="isAllowedToResubscribe(document.bulkcontactfrm); manipulateDIV(document.bulkcontactfrm); resubscribeCall(document.bulkcontactfrm);"&gt;&amp;#160;Re-Subscribe&lt;/zoniac:roundrect&gt;&amp;#160;&lt;/a&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/div&gt; &lt;div id="loadingDiv" class="cellWhiteBGFont" layoutAlign="top" style="display: block;"&gt;&lt;p&gt;&lt;img src="&lt;%=ImageMappingManager.getImageName("imgLoading")%&gt;" name = "b1"&gt;&amp;nbsp;&amp;nbsp;&lt;font size='3'&gt;&lt;b&gt;Please wait...&lt;b&gt;&lt;/font&gt;&lt;/p&gt; &lt;/div&gt; &lt;/form&gt;</pre><p> JS函数如下:</p><pre> // First function validate the data using ajax call function isAllowedToResubscribe(form) { //Client validation takes here processAjaxRequestPost('ajaxRequestPost','SimpleHandler','getResubscribeEmailValidationDetails',emilIDStr,sourcefromStr); } // Second function hide the content in UI and show the Processing image in &lt;DIV&gt; tag function manipulateDIV(form) { hideSaveDiv(); showLoadingDiv(); } function hideSaveDiv() { //hide the Re-Subscribe hyperlink document.getElementById('saveDiv').style.display='none'; } function showLoadingDiv() { //show the Processing image document.getElementById('loadingDiv').style.display='block'; } // Third function is for form submit using ajax call function resubscribeCall(form) { //processAjaxRequestPost('ajaxRequestPost','SimpleHandler','getResubscribeEmailDetails',emilIDStr,sourcefromStr); }</pre><p> 单击超链接验证 function 调用并获取成功后,出现构造消息,单击构造上的确定。 但是&lt;DIV&gt;标签并没有被隐藏,所以没有加载进度图像。</p></div> Javascript隐藏/显示div不起作用 jQuery DIV的显示/隐藏不起作用
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM