我正在创建一个“社交媒体评论部分”(您可以通过在底部的评论框中输入内容来添加您自己的评论。)我想添加一个编辑按钮,该按钮可以更改为对于单击编辑按钮的任何评论。我非常不熟悉如何做到这一点。我尝试添加一个单击功能,该功能创建一个文本框,您可以在其中输入文本,但它会在每个具有编辑按钮的评论上创建文本框。 如何使“编辑”按钮更具体地显示所点击的评论?
$(document).ready(function(){ let value; let storeValues = [] let storeValueName; let storeValueComment; $('#addComment').click(function(){ storeValueName = getName(); storeValueComment = getComment(); storeValues.push(storeValueName); storeValues.push(storeValueComment); value = getName() + getComment(); function getName(){ let grabName; $('#name').val(function(i, v){ grabName = v; }) return grabName; } function getComment(){ let grabComment; $('#bodyText').val(function(i, v){ grabComment = v; }) return grabComment } console.log(storeValues); $('.eachComment').prepend('<div class="comments">' +'<img class="imgClass" src="userImage.jpg">'+'<p class="nameVal">' + storeValueName +'</p>' + '<p class="commentVal">'+ storeValueComment +'</p>'+ '<input type="button" id="edit" value="Edit" />'+ '<input type="button" id="delete" value="Delete" />' + '</div>'); $('#edit').click(function(){ }) }) })
body{ background-color: #E5E5E5 } #wholeForm{ margin: 0 auto; width: 800px; height: 400px; position: relative; background-color: #D3D3D3; font-family: helvetica; } #question{ padding: 0px; margin: 0px; width: 780px; height: 75px; background-color: white; padding:10px; } #nameOfPerson{ font-size:13px; margin: 0; padding: 0; } #commentOfPerson{ font-size:25px; font-weight: bold; margin: 0; padding: 0; } .form2{ width: 800px; height: 458px; } .comments{ background-color: white; width: 780px; height: 75px; position: relative; margin: 10px; } .form1{ padding:20px; margin-bottom: 10px; width: 758px; position: absolute; bottom: -10px; background-color: white; } #addComment{ display: inline-block; margin-left: 35px; } #name{ width: 125px; } #bodyText{ width: 500px; } .formInput{ display: inline-block; } .nameVal{ display: inline-block; font-size: 12px; position: absolute; } .commentVal{ display: inline-block; position: absolute; font-weight: bold; font-size: 18px; bottom: 5px; } .imgClass{ display: inline-block; height: 65px; width: 65px; margin: 5px; } #edit{ position: absolute; right:55px; border: none; text-decoration: underline; color:#30D5C8; background-color:white; margin:5px; } #delete{ position: absolute; right:0px; border: none; text-decoration: underline; color:#30D5C8; background-color:white; margin:5px; } #edit:hover{ color:#DDA0DD } #delete:hover{ color:#DDA0DD }
<!DOCTYPE html> <html> <head> <title></title> <link href='style.css' type='text/css' rel='stylesheet' /> </head> <body> <div id='wholeForm'> <div id="question"> <p id="nameOfPerson">WhySoSerious45</p> <p id="commentOfPerson">Trying to decide a career path? Programming is the move. Change my mind.</p> </div> <div class='form2'> <div class='eachComment'> <div class="comments"> <img class="imgClass" src="userImage.jpg"> <p class="nameVal">Jonny R</p> <p class="commentVal">I wish I knew how to program! Maybe ill start learning?</p> <input type="button" id="edit" value="Edit"> <input type="button" id="delete" value="Delete"> </div> </div> </div> <div class='form1'> <div class='formInput'> <input type="text" id="name" placeholder="Display Name"/> <input type='text' id="bodyText" placeholder="Comment"></textarea> </div> <input type="button" id="addComment" value="Submit"> </div> </div> <script src="https://code.jquery.com/jquery-3.5.0.slim.min.js" integrity="sha256-MlusDLJIP1GRgLrOflUQtshyP0TwT/RHXsI1wWGnQhs=" crossorigin="anonymous"></script> <script src="app.js"></script> </body> </html>
从一般意义上回答你的问题......
当您添加事件侦听器时,特定元素将显示在事件的
target
属性上。所以,如果我们有这样的东西:我们实际上可以向 div 添加一个
click
处理程序,因为 事件“冒泡”直到它。