#javascript #jquery #javascript-events
#javascript #jquery #jquery-события
Вопрос:
Я создал поле div, которое должно быть удалено одним щелчком мыши. Там будет маленькое изображение «X», и когда вы нажимаете на него, поле исчезает. Не должно быть возможности показать его снова. В идеале я хотел бы каким-то образом сохранить информацию в файле cookie, чтобы она не отображалась при обновлении страницы или при просмотре других страниц (это было бы реализовано по всему сайту).
Вот мой простой пример кода:
Ответ №1:
Вот решение, которое использует localStorage
— я оставляю его в качестве упражнения для читателя, чтобы переключиться на использование файлов cookie:
Комментарии:
1. Спасибо, это отлично работает в JSfiddle! Я постараюсь реализовать это вживую и дам вам знать.
2. Это не работает, когда он подключен к Сети. Я правильно ее обернул? Сценарий в голове следующий код: <script type=»text/javascript»> $(‘#closebutton’).click(function(){$(‘#box’).hide();if (localStorage) {localStorage.boxHidden = ‘Y’;}}); $(document). готово(функция(){if (localStorage amp;amp; localStorage.boxHidden amp;amp; localStorage.boxHidden == ‘Y’){$(‘#box’).hide();}}); </script>
3. Я обновил скрипку, чтобы обернуть все
$(document).ready()
так, как я должен был сделать с самого начала — извините!
Ответ №2:
Быстро и грязно: (http://jsfiddle.net/bambitlaw/RsS5V /)
$(document).ready(function(){
$('#closebutton').click(function(){
$('#box').hide();
$(this).hide();
document.cookie="hideit=yes";
});
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i )
{
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=") 1);
x=x.replace(/^s |s $/g,"");
if (x=="hideit")
{
$('#box').hide();
$('#closebutton').hide();
}
}
});
Комментарии:
1. Я использовал этот, только заменил «скрыть» на «удалить», чтобы избежать отображения: нет в css.
Ответ №3:
Я полагаю, вы говорите о диалоговом окне jquery. Я обычно использую «X» в качестве самого символа, и это выглядит хорошо. Пример выглядит следующим образом.
$('#yourdiv').dialog({
closeOnEscape: true,
draggable: true,
modal: true,
closeText: 'X',
width: 500,
title: 'Your Title',
buttons: [
{
text: "Save",
click: function () {
$(this).dialog("close");
}
},
{
text: "Cancel",
click: function () {
$(this).dialog("close");
}
}
]
});