Добавление кнопки закрытия в div для закрытия окна


Я создал окно предварительного просмотра URL-адреса для введенного URL-адреса.

Предварительный просмотр отображается в поле div. Я хочу добавить опцию закрытия справа вверху. Как можно сделать так, чтобы при нажатии пользователем на него поле должно быть отключено.

Вот моя скрипка.

<a class="fragment" href="google.com">
    <div>
    <img src ="http://placehold.it/116x116" alt="some description"/> 
    <h3>the title will go here</h3>
        <h4> www.myurlwill.com </h4>
    <p class="text">
        this is a short description yada yada peanuts etc this is a short description yada yada peanuts etc this is a short description yada yada peanuts etc this is a short description yada yada peanuts etcthis is a short description yada yada peanuts etc 
    </p>
</div>
</a>

Код находится внутри php

Author: christiandev, 2013-10-31

7 answers

Самый простой способ (предполагается, что вы хотите удалить элемент)

<span id='close' onclick='this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode); return false;'>x</span>

Добавьте это в свой div, пример здесь.

Вы также можете использовать что-то вроде этого

window.onload = function(){
    document.getElementById('close').onclick = function(){
        this.parentNode.parentNode.parentNode
        .removeChild(this.parentNode.parentNode);
        return false;
    };
};

Пример Здесь.

Css для кнопки закрытия

#close {
    float:right;
    display:inline-block;
    padding:2px 5px;
    background:#ccc;
}

Вы можете добавить эффект наведения, например

#close:hover {
    float:right;
    display:inline-block;
    padding:2px 5px;
    background:#ccc;
    color:#fff;
}

Что-то вроде этого.

 50
Author: The Alpha, 2013-10-31 11:16:35

Это легко с идентификатором контейнера div: (Я не поместил кнопку закрытия внутри <a>, потому что это работает правильно во всех браузерах.

<div id="myDiv">
<button class="close" onclick="document.getElementById('myDiv').style.display='none'" >Close</button>
<a class="fragment" href="http://google.com">
    <div>
    <img src ="http://placehold.it/116x116" alt="some description"/> 
    <h3>the title will go here</h3>
        <h4> www.myurlwill.com </h4>
    <p class="text">
        this is a short description yada yada peanuts etc this is a short description yada yada peanuts etc this is a short description yada yada peanuts etc this is a short description yada yada peanuts etcthis is a short description yada yada peanuts etc 
    </p>
</div>
</a>
</div>
 6
Author: Asenar, 2013-10-31 11:03:16

Вот обновленное СКРИПКА

Ваш HTML должен выглядеть так (я только добавил кнопку):

<a class="fragment" href="google.com">
    <button id="closeButton">close</button>
    <div>
        <img src ="http://placehold.it/116x116" alt="some description"/> 
        <h3>the title will go here</h3>
        <h4> www.myurlwill.com </h4>
        <p class="text">
        this is a short description yada yada peanuts etc this is a short description yada yada peanuts etc this is a short description yada yada peanuts etc this is a short description yada yada peanuts etcthis is a short description yada yada peanuts etc 
        </p>
    </div>
</a>

И вы должны добавить следующий CSS:

.fragment {
    position: relative;
}
#closeButton {
    position: absolute;
    top: 0;
    right: 0;
}

Затем, чтобы кнопка действительно работала, вы должны добавить этот javascript:

document.getElementById('closeButton').addEventListener('click', function(e) {
    e.preventDefault();
    this.parentNode.style.display = 'none';
}, false);

Мы используем e.preventDefault() здесь, чтобы запретить якорю переходить по ссылке.

 4
Author: matewka, 2013-10-31 11:03:00

Вы можете использовать этот jsfiddle

И HTML-Код:

<div id="previewBox">
    <button id="closeButton">Close</button>
<a class="fragment" href="google.com">
    <div>
    <img src ="http://placehold.it/116x116" alt="some description"/> 
    <h3>the title will go here</h3>
        <h4> www.myurlwill.com </h4>
    <p class="text">
        this is a short description yada yada peanuts etc this is a short description yada yada peanuts etc this is a short description yada yada peanuts etc this is a short description yada yada peanuts etcthis is a short description yada yada peanuts etc 
    </p>
</div>
</a>
</div>

С JS (требуется jquery):

$(document).ready(function() {
    $('#closeButton').on('click', function(e) { 
        $('#previewBox').remove(); 
    });
});
 3
Author: Martin, 2013-10-31 11:12:56

Решение jQuery: Добавьте эту кнопку в любой элемент, который вы хотите закрыть:

<button type='button' class='close' onclick='$(this).parent().remove();'>×</button>

Или "просто" скрыть это:

<button type='button' class='close' onclick='$(this).parent().hide();'>×</button>
 2
Author: patrick, 2016-07-01 23:04:45

Обновил вашу скрипку: http://jsfiddle.net/xftr5/11 / Надеюсь, все понятно?

$(document).ready(function() {
    $('.fragment i').on('click', function(e) { $(e.target).closest('a').remove(); });
});

Добавлен jQuery и вставлен <i> в качестве триггера закрытия...

 1
Author: pebbo, 2013-10-31 10:59:30

JQuery("#your_div_id").удалить(); полностью удалит соответствующие элементы из HTML DOM. Поэтому, если вы хотите показать div на другом событии без обновления, восстановить удаленные элементы обратно будет невозможно, если вы не используете AJAX.

JQuery("#your_div_id").переключение ("медленно"); также может привести к неожиданным результатам. В качестве примера, когда вы выбираете какой-либо элемент в своем div, который генерирует другой div с кнопкой закрытия (которая использует ту же функцию закрытия так же, как и ваш предыдущий div), это может привести к нежелательному поведению.

Таким образом, без использования AJAX хорошим решением для кнопки закрытия было бы следующее

HTML-код________________________________________________________________________

<div id="your_div_id">
<span class="close_div" onclick="close_div(1)">&#10006</span>
</div>

JQUERY (ЗАПРОС)_______________________________________________________________________

function close_div(id) {
    if(id === 1) {
        jQuery("#your_div_id").hide();
    }
}

Теперь вы можете показать div, когда произойдет другое событие, как вы хотите...:-)

 1
Author: Nimantha Harshana Perera, 2016-01-22 09:45:57