Вы не зашли.
Страницы 1
сабж, вопросец есть, сам не сильно силен в нем, хочу сделать вот что:
на сайте есть блок, который при нажатии на другой блок\ссылку (вне первого блока) скрывает первый блок. с етим вроде проблем нет. но нужно что бы менялась надпись с "скрыть блок" на "показать блок"
и что бы все ето сохранялось в кукисах что бы юзер при повторном заходе на сайт не нажимал скрыть блок если он ему не нужен
как такое сделать?
Не в сети
Попробуй так:
<script type="text/javascript">
$(function(){
$(window).load(function() {
if (readCookie('hide')) {
hideblock();
} else $('#button2').hide();
function hideblock() {
$('#block').hide();
$('#button1').hide();
$('#button2').show();
createCookie('hide', 'yes', 365);
};
function showblock() {
$('#block').show();
$('#button2').hide();
$('#button1').show();
eraseCookie('hide');
};
$('#button1').click(function() {
hideblock();
return false;
});
$('#button2').click(function() {
showblock();
return false;
});
});
});
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
};
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
};
function eraseCookie(name) {
createCookie(name,"",-1);
};</script>
<a href="#" title="Показать" id="button2">Показать</a><a href="#" title="Скрыть" id="button1">Скрыть</a>
По сути, должно получиться...
Изменено KhadeR (2010-03-26 01:30:49)
Не в сети
спс, работает, но есть пара моментов:
1. может изначально им присвоить класс какой нибудь, который содердит дисплей: нон
что бы у юзеров, у который отключен джава скрипт, не отображались ети ссылки
2. $('#block').hide(); $('#block').show(); я заменяю на $("#introbox").slideToggle("slow"); и получается если в кукисах сохранено что блок должен быть скрыт, при обновлении страницы блок виден и сразу плавно сворачивается - как сделать что бы он просто не был виден в таком случае?
Не в сети
Значит так:
1. css:
.hide{display:none;}
2. html:
<a href="#" id="button" class="hide">Скрыть</a>
3. js:
<script type="text/javascript">
$(window).load(function() {
$('#button').removeClass('hide');
if (readCookie('hide')) {
$('#introbox').hide()
$('#button').text('Показать');
};
$('#button').click(function() {
$('#introbox').slideToggle('slow');
if (readCookie('hide')) {
$('#button').text('Скрыть');
eraseCookie('hide');
} else {
$('#button').text('Показать');
createCookie('hide', 'yes', 365);
}
return false;
});
});
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
};
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
};
function eraseCookie(name) {
createCookie(name,"",-1);
};
</script>
Изменено KhadeR (2010-03-26 12:08:45)
Не в сети
Страницы 1