【问题标题】:why icons in bootstrap change only once on collapse ?why jquery code run only once?为什么引导程序中的图标在崩溃时只更改一次?为什么 jquery 代码只运行一次?
【发布时间】:2020-02-16 04:07:40
【问题描述】:

我有一个使用过的手风琴和来自 bootstrap 的折叠类,并在卡片标题中添加了很棒的字体图标。使用 jquery,我使用折叠事件将图标更改为向上箭头和向下箭头。所有这些都可以正常工作,但只有一次图标更改..一旦我扩展了三个卡片主体,所有图标都是向上箭头..之后它没有改变。加载 html 页面时它只工作一次..我能做些什么来重复同样的..

 <script>
  	$(document).ready(function(){
  		$('.collapse').on('hide.bs.collapse',function(){
  		$(this).parent().find('.fa-angle-down').removeClass('.fas fa-angle-up').addClass('.fas fa-angle-down');});
  		$('.collapse').on('show.bs.collapse',function(){
  		$(this).parent().find('.fa-angle-down').removeClass('.fas fa-angle-down').addClass('.fas fa-angle-up');});

  	});
  </script>
<div class="container">

		<div id="accordian">
			<div class="card">
				<div class="card-header">
					<i class="fas fa-angle-down"></i>
					<a href="#collapse1" data-toggle="collapse">Asia</a>
				</div>
				
					<div class="card-body collapse"data-parent="#accordian" id="collapse1">
						<ul>
							

							<li>India</li>
							<li>China</li>
							<li>Japan</li>
						</ul>
			</div>
		</div>

		<div class="card">
				<div class="card-header">
					<i class="fas fa-angle-down"></i>
					<a href="#collapse2" data-toggle="collapse">Europe</a>
				</div>
				
					<div class="card-body collapse "data-parent="#accordian" id="collapse2">
						<ul>
							<li>Italy</li>
							<li>Germany</li>
							<li>France</li>
						</ul>
			</div>
		</div>

		<div class="card">
				<div class="card-header">
					<i class="fas fa-angle-down"></i>
					<a href="#collapse3" data-toggle="collapse">North America</a>
				</div>
				
					<div class="card-body collapse"data-parent="#accordian" id="collapse3">
						<ul>
							<li>Canada</li>
							<li>Mexico</li>
							<li>US</li>
						</ul>
			</div>
		</div>

	</div>
	</div>

【问题讨论】:

  • 上面的代码工作正常..这只是一个小错误..在 find 中我给出了与 fa-angle-down 相同的类..现在我将其中一个更改为 fa-angle -up,它的工作原理..感谢所有帮助..

标签: jquery icons collapse runonce


【解决方案1】:

您已经在$(document).ready(function() 中编写了图标更改代码。因此,它只会在您的页面准备就绪时运行一次。您可以在onclick() 事件中编写此内容。

【讨论】:

  • 即使这个脚本写在点击函数上也会给出同样的结果...
  • 您可能已经注意到,我们示例中的所有 jQuery 方法都在文档就绪事件中: $(document).ready(function(){ // jQuery 方法在这里... });这是为了防止任何 jQuery 代码在文档完成加载(准备就绪)之前运行。在处理文档之前,最好等待文档完全加载并准备好。这也允许您将 JavaScript 代码放在文档正文之前的 head 部分。
  • hide.bs.collapse - 当可折叠元素即将被隐藏时发生 & show.bs.collapse..这是我在这里使用的事件
猜你喜欢
  • 2020-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多