jquery - 使用带有 mysql 查询的 Handlbars JS 填充多张卡片,但只有 1 个按钮有效

标签 jquery html mysql handlebars.js

我已经在 handlebars js 中设置了一个模板来显示我的 mysql 查询中每个条目的信息。代码有效,我得到了预期的显示(16 个信息卡,带有一个应该显示更多信息的按钮)。

我遇到的问题是,每张返回的信息卡都有一个 div/按钮,单击该按钮时应该会显示该卡的更多信息。但是,只有第一个返回的信息卡上的第一个按钮有效。该按钮由 id 调用,当我更改为按类调用它时,它会显示所有正确的信息,但同时显示所有 16 张卡片。其他 15 个按钮均未按 ID 或类响应。

关于如何让所有 16 张卡片在单击相应按钮时分别使用react的任何建议?

<div class="force-block"> 
 {{#each taco }} 	//for each loop
  <div id="main-bio-block">
	<div class="performer-image"><img src="{{this.image}}" class="user-image">
	</div>
				<div class="info" id="info-modal">
                <p>Country: {{this.country}}</p>
				<p>Earnings: {{earnings}}</p>
				<p>Wins: {{wins}}  Losses: {{loss}}</p>
				<p>Titles: {{titles}}  Gold: {{gold}} </p>
				<p>Silver: {{silver}}  Bronze: {{bronze}}</p>
				</div>
			      <div id="user-name"><p>{{this.handle}}</p></div>
     //this is the button in question
                    <div class="modal-btn" id="bio-modal">
                      <p>Bio Info</p>
                    </div>
		            <div class="modal-btn" id="accolades-modal">
                      <p>Accolades</p>
                    </div>
//below is the modal hidden until bio-modal is clicked.
		<div class="many" id="info-1">
			<span class="close">&times;</span>
				<div class="info-content">
					<p>{{bio}}</p>
				</div>
		</div>

		</div>
{{/each}}		

</div>


<script type="text/javascript">
		$('#bio-modal').click(function(){
			$('#info-1').show();
		});

		$('.close').click(function(){
			$('#info-1').hide();
		});

		
	</script>

最佳答案

据我所知,您在循环中多次使用相同的 id :

<div id="main-bio-block">

<div class="modal-btn" id="bio-modal">

<div class="many" id="info-1">

您的 ID 应该是唯一的,这样它们就不会在您的页面中出现多次。

在您的情况下,您将获得循环中使用的每个 id 的 16 倍。 取而代之的是,您可以使用循环的索引号来生成类似这样的独特内容

<div class="many" id="info-{{@index}}">

你的生物模式按钮也是一样的:

<div class="modal-btn" onclick="toggleinfo('info-{{@index}}')">
   <p>Bio Info</p>
</div>

完成此操作后,您只需要一个像这样的 toggleinfo 函数:

<script type="text/javascript">
        function toggleinfo(id){
            $(id).toggle();
        }
</script>

关于jquery - 使用带有 mysql 查询的 Handlbars JS 填充多张卡片,但只有 1 个按钮有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49353624/

相关文章:

javascript - 使用 .html() 更新后,浏览器对于新行数的响应速度较慢。你能帮我看看我的错误吗?

security - HTML5 中的注册机标签

MYSQL:想要将日期列设为NULL

php - Yii:从模型的嵌套连接表访问属性

mysql - Spring使用Windows用户而不是给定的用户名 'root'来访问mysql

javascript - jQuery/Ajax - $.ajax() 将参数传递给回调 - 使用的好模式?

javascript - $.ajax 对比 $.post 对比 $.get 对比 $.load

javascript - 如何用jQuery区分鼠标左键单击和右键单击

javascript - HighCharts 仅显示标题

javascript - 如何在移动网络应用程序中滚动 div 的内容?