javascript : creating elements on first click and deleting the created element on second click

标签 javascript jquery html css

我的页面中有一个 div,我将使用它在另一个添加了类的 div 中生成 p 标记。

function creatorfunction() {
  var u94 = document.getElementById("box").getAttribute("custom-data");
  parau94 = document.createElement("p");
  parau94.innerHTML = u94;
  parau94.className = "u94cl";
  creation = document.getElementById("generator");
  creation.appendChild(parau94);
}
#generator {
  background-color: #29BF97;
  width: 200px;
  height: 200px;
  float: right;
  display: inline-block;
}

#box {
  background-color: #29BF97;
  display: inline-block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="box" onclick="creatorfunction()" custom-data="you just clicked me"> click me </div>
<div id="generator">
</div>

这是我下一步要实现的目标。 当我点击“点击我”时,它创建了 p 标签,但现在我想删除相同的 p 标签如果我再次点击“点击我”。

最佳答案

首先,如果您不使用选择和点击事件,为什么要添加 jquery?

无论如何,您需要添加一个小插件来处理切换功能。

然后调用 clickToggle,它接受 2 个函数并在每次点击时在它们之间切换。

//clickToggle plugin
(function($) {
  $.fn.clickToggle = function(func1, func2) {
    var funcs = [func1, func2];
    this.data('toggleclicked', 0);
    this.click(function() {
      var data = $(this).data();
      var tc = data.toggleclicked;
      $.proxy(funcs[tc], this)();
      data.toggleclicked = (tc + 1) % 2;
    });
    return this;
  };
}(jQuery));
//end plugin


$('#box').clickToggle(function() {
  creatorfunction();
}, function() {
  $('#generator').children().first().remove(); //removes the first child from #generator
});


function creatorfunction() {
  var u94 = document.getElementById("box").getAttribute("custom-data");
  parau94 = document.createElement("p");
  parau94.innerHTML = u94;
  parau94.className = "u94cl";
  creation = document.getElementById("generator");
  creation.appendChild(parau94);
}
#generator {
  background-color: #29BF97;
  width: 200px;
  height: 200px;
  float: right;
  display: inline-block;
}

#box {
  background-color: #29BF97;
  display: inline-block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="box" custom-data="you just clicked me"> click me </div>
<div id="generator">
</div>

关于javascript : creating elements on first click and deleting the created element on second click,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45261161/

相关文章:

javascript - 使用相同的 div 切换页面的不同部分

JavaScript - 5 秒后单击所有带有类名的按钮 (Twitter)

javascript - 扩大quora中的 'more'链接

html - Flexbox 在 Opera 和 Safari 中导致意外换行

html - html 表单占位符中未显示土耳其字符

javascript - 如何让我的弹出窗口在 3 秒后消失

javascript - 删除数组的部分内容

jquery - 每次 div 刷新时不显示加载图像

html - 请帮我在这个 html 导航菜单中添加一个简单的动画

javascript - ExtJS Controller 中未调用 onLaunch 函数