在叠加中打开时重复发帖,我怎么解决这个问题?

时间:2018-04-01 作者:J.Z

我按照链接示例创建了一个代码:https://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_overlay_text

仅打开所有按钮上的第一个帖子的问题。如何解决此问题?

我的代码:

<style>
#overlay {
    position: fixed;
    display: none;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0,0,0,0.5);
    z-index: 2;
    cursor: pointer;
}

#text{
    position: absolute;
    top: 50%;
    left: 50%;
    font-size: 12px;
    color: white;
    transform: translate(-50%,-50%);
    -ms-transform: translate(-50%,-50%);
}
</style>
<?php /* Template Name: Equipe  */ ?>

<?php get_header(); ?>

<?php
$args = array( 
    \'post_type\' => \'cpt_profissionais\',
    \'post_status\' => \'publish\',
    \'order\' => \'ASC\',
    \'posts_per_page\' => 9999,
    \'paged\' => $paged );
$wp_query = new WP_Query($args);
while ( have_posts() ) : the_post(); ?>

<?php the_title(); ?>

<div style="padding:20px">
  <button onclick="on()">Clique e saiba mais</button>
</div>

<div id="overlay" onclick="off()">
  <div id="text"> <?php the_content(); ?></div>
</div>  

<?php endwhile; ?>

<?php get_footer(); ?>

<script>
function on() {
    document.getElementById("overlay").style.display = "block";
}

function off() {
    document.getElementById("overlay").style.display = "none";
}
</script>

1 个回复
SO网友:Mark Kaplun

为了能够识别特定的“帖子”,您需要在其HTML中具有一些独特的属性。通常最简单的方法是使用post id作为id 属性(在您的示例中可能类似于覆盖{$post\\u id})。我个人开始喜欢使用data- 相反,样式属性是不同的,但对于这个用例来说,区别更多的是美学上的。

现在,您已经拥有了所有唯一的内容(甚至可能不这样做),可以在所有“post”上使用一个公共类,并为该类中的单击元素提供一个处理程序(使用jQuery很容易),或者在包含div 而不是元素,并在处理程序中查看事件属性以找出实际单击了哪个“post”。

结束

相关推荐

是否可以将头文件-{YOUR_CUSTOM_TEMPLATE}.php放入子目录?

我刚刚了解到,可以创建不同的标题。通过创建一个新文件并将其命名为:header myname,可以在主题中创建php文件。php。要调用,我将使用如下标题模板标记:get_header( \'myname\' ); 但是那样我就必须把我的文件放在我的主题的主目录中,对吗?因此,我的问题是:有没有办法将自定义头文件放入子目录,如果有,如何使用get\\u header()标记声明其位置?