每当我单击一行时,我都希望有一个“弹出” div。我试图用javascript来切换一个类。 我们正在用WordPress自定义帖子类型填充表格,因此行数未知。
正在正确生成id“ bedrijfsinfo-x”,并且函数计算出正确的行数。它仍然在所有div上切换该类,而不只是切换与我单击的行关联的那个。
任何帮助将不胜感激!
<?php $counter = 1 ; ?>
<?php
// Als er berichten zijn gevonden.
if ( $posts->have_posts() ) {
// While loop om alle berichten op te halen
while ( $posts->have_posts() ) :
$posts->the_post();
global $post;
?>
<tr id="su-post-<?php the_ID(); ?>" class="su-post contracten">
<td class="meta_data" onclick="showInfo()"><?php bedrijfsnaam(); ?></td>
<td><?php naam_contactpersoon(); ?></td>
<td><?php url(); ?></td>
<td><?php start(); ?></td>
<td><?php eind(); ?></td>
<td><?php frequentie(); ?></td>
<td><?php datum_onderhoud(); ?></td>
</tr>
<div id="bedrijfsinfo-<?php echo $counter?>" class="infobox">
<p>Bedrijfsinformatie<br><?php bedrijfsnaam() . url() . start() . eind(); ?></p>
<button onclick="showInfo()"><p class="button">Sluiten</p></button>
</div>
<?php $counter = $counter + 1; ?>
<?php endwhile; }
<script>
function showInfo() {
var tr_count = document.getElementsByTagName("tr").length;
for (var i = 1; i < tr_count; i++) {
var popup = document.getElementById("bedrijfsinfo-"+ i);
popup.classList.toggle("show");
}
}
</script>
答案 0 :(得分:1)
您的showInfo
函数遍历整个行数。听起来那不是您想要的。也许尝试传递点击的事物的ID?
<td class="meta_data" onclick="showInfo(<?php $counter; ?>)"><?php bedrijfsnaam(); ?></td>
// ...
<button onclick="showInfo(<?php $counter; ?>)"><p class="button">Sluiten</p></button>
function showInfo(i) {
var popup = document.getElementById("bedrijfsinfo-"+ i);
popup.classList.toggle("show");
}