javascript - jQuery 通过单击创建和删除 <div>

标签 javascript jquery

您好,我尝试编写一个函数,使用户能够在点击网站的某个区域时创建一个,当他再次点击创建的 div 时,它会被删除。不知何故,我只能创建 div,当我单击它们时,会创建一个新的 div,而不是删除单击的 div。我还实现了一个功能,用户可以在其中确定是要创建一个 div 还是删除一个 div。

<!--changed #button to #conten-->
<div id='content'></div>
<button id='btn'></button>



var i = 0;
var remove = false;
$('#content').click(function(e) {
    $('<div></div>').attr({
        'id' : i
    }).addClass('circle').css({
        'top' : e.pageY - 20,
        'left' : e.pageX - 20
    }).appendTo('#button');
    i++;
});

$('.circle').click(function (){
    if(remove == true){
        $(this).remove();
    }
    else{
        //just to see if it was clicked
        $(this).css({'background-color': 'red'});
    }
});
$('#btn').toggle(function() {
    $('#btn').text('add');
    remove = true;
}, function() {
    $('#btn').text('remove');
    remove = false;
});

最佳答案

工作示例:http://jsfiddle.net/CutPp/

var i = 0;
var remove = true; // added this 
$('#button').click(function(e) {
    $('<div/>').attr({
        'id' : i
    }).addClass('circle').css({
        'top' : e.pageY - 20,
        'left' : e.pageX - 20
    }).appendTo('#area'); // append to new container
    i++;
});

$('#area').on('click','.circle',function (){ // corrected spelling and changed to on()
    if(remove){  // no need to check for == true
        $(this).remove();
    } else {
        //just to see if it was clicked
        $(this).css({'background-color': 'red'});
    }
});

$('#btn').toggle(function() {
    $('#btn').val('add');
    remove = true;
}, function() {
    $('#btn').val('remove');
    remove = false;
});

我做了以下事情:

  • 添加了一个变量 - 删除
  • 用过on()而不是点击,因为在绑定(bind)点击后将 div 添加到 DOM
  • 排序圆的拼写
  • 为新创建的 div 创建了一个容器

我的示例 HTML

<input type="button" id="button" value="New Div"/>&nbsp;<input type="button" id="btn" value="Add"/><br/>
<span id="area"></span>

关于javascript - jQuery 通过单击创建和删除 <div>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8575081/

相关文章:

javascript - 如何识别设备并使用个人电脑设备代码和移动设备(ios 或 android)的第二个代码?

javascript - Ext JS - 如何从 View 中将参数传递给 Controller ​​中存在的监听器

javascript - 有哪些 HTML5 Canvas 像素检测和图像处理库?

javascript - 我应该如何更新 *.eslintrc* 到 ESLint 以查看更改?

jquery - 将 JQuery Sortable(新顺序)保存到 ASP.Net MVC Controller ?

javascript - 当有人开始在网页上输入内容时显示搜索字段

javascript - 如何提取不包含文本的 HTML 标签

javascript - 如何将部分表单的数据传递给 Rails 操作(使用 JavaScript 且不使用嵌套属性)?

javascript - 等分值算法

javascript - 找不到创建多个历史条目的 popstate 循环的位置