Додавання та видалення div на клік за допомогою jquery

У мене є порожній девіз, і в цьому я маю інший розділ, який можна перетягнути.

Тепер, де б я не натискав контейнер, драйвований розділ слід додати до позиції (0,0), а після натискання кнопки закриття мені потрібно видалити цей дратівливий розділ. Як це зробити?

Це те, що я маю:

http://jsfiddle.net/g6cdL/32/

Ось мій код:

<div id="content" style="background-color: #E5E5E5; width:500px; height:500px;">
<div class="demo" style="border-style: dashed; background-color: #CCCCCC">

Script:

<script type="text/javascript">
 $(function() {

          $('.demo').draggable({

              containment: '#content',
              cursor: 'move',
              snap: '#content',
                 stop: function() {
                  var offset = $(this).offset();
                  var xPos = offset.left;
                  var yPos = offset.top;
                  $('#posX').text('X: ' + xPos);
                  $('#posY').text('Y: ' + yPos);
              }
          })
    .resizable();

});
</script>

CSS:

.demo {
    position: relative;
    height: 200px;
    width: 200px;
    border: 1px solid #000;
}
.demo:before {
    content: '';
    position: absolute;
   height: 30px;
       width: 30px;
       top: -16px;
       left: -16px;
    background: url(http://dummyimage.com/30x30/000/fff&text=close);
    border: 1px solid #000;
}

.container
{
   background-color: #E5E5E5;
    width:500px;
    height:500px;
}
3
Я не думаю, що можна зареєструвати кліки на кнопку "закрити", оскільки ви створюєте його в CSS, а не в DOM. Замість цього: jsfiddle.net/mblase75/g6cdL/42
додано Автор Blazemonger, джерело
Насправді є модуль jQuery IMMOTE аннотації, тому я хочу подібний до цього flipbit.co. uk/jquery-image-annotation.html
додано Автор coder, джерело

1 Відповіді

Змініть HTML на:

<div id="content" style="background-color: #E5E5E5; width:500px; height:500px;">
    <div class="demo" style="border-style: dashed; background-color: #CCCCCC">
        <div class="closebtn"></div>
    </div>
</div>

Потім змініть .demo: before у вашому CSS на .closebtn і додайте його у свій JavaScript:

$('.closebtn').click(function(e) {
    e.stopPropagation();
    $(this).parent().hide();
});
$('#content').click(function(e) {
    $('.demo').css({top:0,left:0}).show();
});

http://jsfiddle.net/mblase75/g6cdL/48/

1
додано
це не працює добре. При кожному клацанні він додає ".demo" div. Я маю на увазі перетягнути розділ і ще раз натиснути зміст, додавши його знову.
додано Автор Sedat Başar, джерело