javascript - 为什么使用 jQuery 每次单击两次后添加 after() 文本?

标签 javascript jquery

当我单击特定问题添加答案按钮时,我有几个问题。显示按钮后,我单击按钮以根据我已经使用 jQuery after() 单击的问题获取答案,如下所示:-

它可以工作,但不正常

当我点击第一个问题而不是点击按钮时,它给出一个答案,没关系

但是当我单击第二个问题时,单击按钮会给出两次答案,这是不行的

我只想为每个问题提供一个答案,我该怎么做?

$(function(){
  $('button').hide();
  $('.questions').click(function(){
    $('button').show();
    var $QuestionClick = $(this);

  $('button').click(function(){
    $QuestionClick.after('<p>This is text</p>')
  });
  
  });
});
.questions{ background:#f1f1f1; border:#ccc; padding:10px;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<button>Add Answer</button>


<p class="questions">Question 1</p>
<p class="questions">Question 2</p>

回答将不胜感激!

最佳答案

您的路径是正确的,您只需将按钮单击功能从其他单击功能中移出即可。

$(function() {
  $('button').hide();
  var $QuestionClick
  $('.questions').click(function() {
    $('button').show();
    $QuestionClick = $(this);
  });
  $('button').click(function() {
    $QuestionClick.after('<p>This is text</p>')
  });
});

演示

$(function() {
  $('button').hide();
  var $QuestionClick
  $('.questions').click(function() {
    $('button').show();
    $QuestionClick = $(this);
  });
  $('button').click(function() {
    $QuestionClick.after('<p>This is text</p>')
  });
});
.questions {
  background: #f1f1f1;
  border: #ccc;
  padding: 10px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<button>Add Answer</button>


<p class="questions">Question 1</p>
<p class="questions">Question 2</p>

关于javascript - 为什么使用 jQuery 每次单击两次后添加 after() 文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59704001/

相关文章:

javascript - native 客户端 : How to use Messaging_HandleMessage in C

javascript - .ajax 和 .click 不想在简单的联系表单上为我工作

javascript - 从 JS 转 HTML 转 PHP

javascript - 跳到 JSON 数组中的下一个对象并填充输入框

Javascript:查找带有大括号的文本

javascript - 作为汽车配置器控制复杂的 Sprite 图像

javascript - Node js 中的多个 Promise

javascript - iframe 捕获 keydown 事件

php - 如何修复此代码以回显输出而不是未定义的? JSONP、PHP、MySQL

javascript - 在 lodash 中将 _.set 与 _.each 一起应用