![](/img/trans.png)
[英]How do I make it so only a specific modal appears when I press a button in React?
[英]how do I make it so when I click a button from a foreach list, it only activates the button in that specific list?
因此,我有一些按钮会切换一些可以在其中发送消息的输入文本区域,我该如何做,因此,当我单击特定列表中的按钮时,它只会激活该特定列表中的按钮。
我尝试了很多其他事情,但我真的不知道如何克服它。 我是JS的新手,主要是Java。
function showFeedback (list) {
var lines = "";
var counter = 0;
list.forEach(function (obiect) {
$(document).ready(function(){
$("button").click(function(){
$("#div"+ obiect.idfeedback +"").fadeToggle("slow");
});
});
counter++;
var style = "";
if(obiect.feedbackType == 1){
style = "style=\"background: green;\"";
} else if(obiect.feedbackType == 0){
style = "style=\"background: red;\"";
}
lines += `<div class="page-block"><div style="text-align: right"><a href="feedback?action=delete&idfeedback=`+obiect.idfeedback+`">X</a></div><div class="cv-block" ${style} >
<div id="parent_div_1">
Name: ${obiect.firstn}
${obiect.lastn}
</div>
<div id="parent_div_2" style="float: right">
Date: ${obiect.date}
</div>
<div class="message_div"><p>${obiect.message}</p></div>
</div>
<button>Contact</button>
<div id="div`+ obiect.idfeedback +`" style="display: none">
<form action="contact" method="post">
<textarea name="message" id="umessage" cols="30" rows="10" maxlength="450" placeholder="Type your message here..." style="height:115px;width: 620px"></textarea>
<input type="hidden" name="email" id="umail" value="`+obiect.email+`">
<input type="hidden" name="action" value="feedback">
<div><input type="submit" value="Send Email"></div>
</form>
</div>
</div>`;
}); if(counter==0){
lines+= `<div class="page-block">No feedbacks to review.</div>`;
}
$("#obiect").html(lines);}
摆脱$(document).ready
,它用于确保在分配事件之前已加载标记。 在您的方案中,标记是动态生成的,加上循环内的document.ready没有意义。
修复此代码的最简单方法是将$('button')
移到循环外。 循环后,执行以下操作
$('button').click(function(){
$(this).next().fadeToggle("slow");
})
该代码的作用是在每个button
元素的click事件上添加一个处理程序,当单击button
时,它会找到放置在button元素旁边的元素(在您的情况下是必需的div
元素),并显示该元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.