单独预先隐藏按钮和图像作为按钮

时间:2016-03-06 12:56:57

标签: javascript php jquery html css

我有一个代码打印出几个按钮,具体取决于多少"答案"在我的页面上。但是,我希望按钮具有应该在按下按钮时显示属于每个答案的文本的功能。

问题在于,当我进入网站时,每个答案的文本都已显示,我希望它在我点击按钮时隐藏并显示。问题是当我按下任何按钮时,每个按钮都会切换,我希望每个按钮都是分开的。我有一个图像,我想用作按钮,并能够点击图像,但由于我没有设法修复它我使用按钮内的图像。我在很多网站上搜索过帮助,但我没有设法做到这一点......

我可能会错过一些CSS,还有其他缺少的代码吗?



<style>
.question-wrap{margin-bottom: 2em}
p.answer{display: none}
</style>
&#13;
&#13;
&#13;

&#13;
&#13;
<script>
$("button.answer-toggle").click(function(){
    $(this).closest('.question-wrap').find('.answer').toggle();
    // Tested with the one above and below at the same time and then one at a time.
    $(this).next().toggle();
});
</script>
&#13;
&#13;
&#13;

&#13;
&#13;
while($row = mysqli_fetch_array($result))
{
echo "<div class='question-wrap'><b><small>Dilemma ".$row['qid']." - Answer ". $row['aid'].":</small></b> ". $row['points']." of 10 <b><small>points</small></b>
    <button class='answer-toggle'><input type='image' title='Information' src='img/down.png' width='13' height='10'></button>
    <p class='answer'>Answer text.</p></div>
    <br>";	
}
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

对于初学者来说,通常最好将重复模块包装在自己的容器中。这有助于批量实例特定遍历和css

<div class="question-wrap">
   <button class="answer-toggle"></button>
   <p class="answer"></p>
</div>

然后,对于单击处理程序,您可以使用多个不同的遍历来隔离特定于实例的元素。

$("button.answer-toggle").click(function(){
    $(this).closest('.question-wrap').find('.answer').toggle();
    // OR
    $(this).next().toggle();
});

CSS

.question-wrap{margin-bottom: 2em}
p.answer{display: none}