Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Проблемы с cookie (https://javascript.ru/forum/dom-window/13755-problemy-s-cookie.html)

P_P 12.12.2010 15:16

Проблемы с cookie
 
Не как не могу сделать запоминание положения чекбоксов, вот код, но, он плохо работает. Положение включено запоминает, а вот выключено только после того как раза три шелкну по чекбоку

....
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="jquery.cookie.js"></script>
....

<SCRIPT LANGUAGE="JavaScript">
<!--
function video(f) {
       if (f.checked) 
	    {
		document.all.my.outerHTML="<DIV class=dragableElement id=video></DIV> <DIV ID=my></DIV>";
		$.cookie("videoCookie",video, {expires: 7} );
		  alert($.cookie("videoCookie") );
		}
        else  {
		document.all.video.outerHTML="34";	
		$.cookie("videoCookie",null ); 
   	    alert($.cookie("videoCookie") );
		} 
	   }
		
function map(f) {if (f.checked) {document.all.my.outerHTML="<DIV class=dragableElement id=map></DIV> <DIV ID=my></DIV>";}
        else  {document.all.map.outerHTML="";} }
		
function foto(f) {if (f.checked) {document.all.my.outerHTML="<DIV class=dragableElement id=foto></DIV> <DIV ID=my></DIV>";}
        else  {document.all.foto.outerHTML="";} }
		
function post(f) {if (f.checked) {document.all.my.outerHTML="<DIV class=dragableElement id=post></DIV> <DIV ID=my></DIV>";}
        else  {document.all.post.outerHTML="";} }
		
function vgornom(f) {if (f.checked) {document.all.my.outerHTML="<DIV class=dragableElement id=vgornom></DIV> <DIV ID=my></DIV>";}
        else  {document.all.vgornom.outerHTML="";} }
		




function check10()
    {
	    var str=$.cookie("videoCookie"); 
        if(str == video) { document.getElementById("c1").checked = true; } 
		  else  {
		  document.getElementById("c1").checked = false;

		  }  
    }

//-->
</SCRIPT>


<BODY onLoad="check10()">

<DIV ID="my"></DIV>
                                                                 
<form name="chkform">
<input type="checkbox" name="c1" id="c1" onClick='video(this.form.c1)'> Видеохроника <BR>
<input type="checkbox" name="c2" id="c2" onClick='map(this.form.c2)'> Карта Горного квартала<BR>
<input type="checkbox" name="c3" id="c3" onClick='foto(this.form.c3)'> Фотохроника <BR>
<input type="checkbox" name="c4" id="c4" onClick='post(this.form.c4)'> Постапающим<BR>
<input type="checkbox" name="c5" id="c5" onClick='vgornom(this.form.c5)'> Социальная сеть<BR>

</form>

</BODY>

P_P 12.12.2010 17:50

З.Ы. Запись в кукис стоит только на первом чекбоксе, на остальные пока не прикручивал.

P_P 13.12.2010 09:03

На сколько я понимаю происходит следующее:
Когда я ставлю галочку и обновляю страницу он нормально запоминает положение галочки и при обновление включает галочку, но когда я после обновления нажимаю убрать галочку функция не вызывается... что бы она вызвалась необходимо сначала отключить галочку потом ее включить и потом опять выключить...... :blink:

Вот ссылка не демо

P_P 13.12.2010 11:49

Проблема решена!!!!

function check10()
    {
        var str=$.cookie("videoCookie"); 
        if(str == video) { document.getElementById("c1").checked = true; } 
          else  {
          document.getElementById("c1").checked = false;
          }



Вместо события черед надо было использовать событие клик

вот верный код функции check10()


function check10()
    {
        if($.cookie("videoCookie") == video) { document.getElementById("c1").click(); } 
    }


Часовой пояс GMT +3, время: 22:27.