Добавление кнопки закрытия в 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

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

 <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; } 

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

это легко с идентификатором контейнера 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> 

Вот обновленный FIDDLE

Ваш 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() здесь, чтобы предотвратить привязку якоря от ссылки.

Вы можете использовать этот 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(); }); }); 

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

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

или «просто» скрыть это:

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

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

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

Добавлен jQuery и вставлен <i> качестве ближайшего триггера …

. 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, когда другое событие происходит по вашему желанию … 🙂