【问题标题】:jQuery Toggle not working on properly second timejQuery Toggle 第二次无法正常工作
【发布时间】:2015-08-13 15:46:16
【问题描述】:

我试图在每次点击时更改 div 的高度。根据第一次点击的内容给出一个固定的高度,然后在第二次点击时给出默认/自动高度。但是以下代码仅在第一次切换时有效,当我再次单击它时它不起作用,第二次不会设置高度自动/默认值。谁能告诉我代码有什么问题,在新的 jQuery 版本中如何编写切换功能。如果我在较新版本中编写切换功能,按钮就会消失。

 $('.item-inner .circle').toggle(function(){
		var itemHeight = $(this).parents('li').siblings('li').children('.item').height();
		$(this).parents('.item').addClass('active');
		$(this).parents('.item').height(itemHeight);
	}, function(){
		$(this).parents('.item').removeClass('active').delay(1000).queue(function() {
			$(this).height('');
		});
	});
ul, li {
   list-style: none; 
 padding: 0;
  margin: 0;
 }

.circle {
    background: #c8d3d8;
    padding: 10px;
    display: inline-block;
    cursor: pointer;
  }
.item {
    border: 2px solid #c8c8c8;
    padding: 10px;
    margin-bottom: 10px;
  }
.item.active {
    background-color: #c4c4c4;
  }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<ul>
  <li>
    <div class="item">
      <div class="item-inner">
        <p>Lorem ipsum dolor sit amet, nec ea modus graece scaevola, sed explicari vituperata ut. Possim oportere eu his, velit intellegam eos an, cum no discere perfecto. Et sed congue nominati. Sit vero dolorem invidunt ea, ius quis munere eu.</p>
        <span class="circle">click me</span>
       </div>
    </div>
   </li>
  <li>
    <div class="item">
      <div class="item-inner">
        <p>Lorem ipsum dolor sit amet, nec ea modus graece scaevola, sed explicari vituperata ut. Possim oportere eu his, velit intellegam eos an, cum no discere perfecto. Et sed congue nominati. Sit vero dolorem invidunt ea, ius quis munere eu.</p>
        <span class="circle">click me</span>
       </div>
    </div>
   </li>
  <li>
    <div class="item">
      <div class="item-inner">
        <p>Lorem ipsum dolor sit amet, nec ea modus graece scaevola, sed explicari vituperata ut. Possim oportere eu his, velit intellegam eos an, cum no discere perfecto. Et sed congue nominati. Sit vero dolorem invidunt ea, ius quis munere eu.</p>
        <span class="circle">click me</span>
       </div>
    </div>
   </li>
  <li>
    <div class="item">
      <div class="item-inner">
        <p>Lorem ipsum dolor sit amet, nec ea modus graece scaevola, sed explicari vituperata ut. Possim oportere eu his, velit intellegam eos an, cum no discere perfecto. Et sed congue nominati. Sit vero dolorem invidunt ea, ius quis munere eu.</p>
        <span class="circle">click me</span>
       </div>
    </div>
   </li>
</ul>

【问题讨论】:

  • 在so中运行sn-p似乎可以工作
  • @PraveenKumar,在新的jQuery版本中如何编写切换函数true注意细节!我还没有投票结束这个问题
  • @Satpal 嘿嘿……谢谢。 :) 我的一半细节。
  • @MateiMihai,当您第二次点击任何“点击我”按钮时(第一次切换完全完成后),或者如果您计算点击次数,那么它在第 4 次点击时不会设置 .项目 div 为默认/自动。那是我的问题

标签: javascript jquery html css


【解决方案1】:

看起来你想在切换时取消高度,改变:

$(this).height('');

$(this).css('height','auto');

【讨论】:

  • 我试过 $(this).css('height','auto');但不会在第 4 次点击时恢复高度
  • 抱歉,如果我只点击 1 个按钮 4 次,它会起作用。但是如果您单击任何按钮,然后单击任何其他按钮,则代码在第 4 次单击时不起作用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 2021-10-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多