Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проблема с if и cookie (https://javascript.ru/forum/misc/17894-problema-s-if-i-cookie.html)

The_FactioN 07.06.2011 20:58

Проблема с if и cookie
 
Вообщем у меня есть код,Часть его работы составляет сохрание в куки различные значения(id1,id2,id3)
Потом я создал проверку(if,else) при которой он проверяет если cоздана кука с таким то значением,то он присваивает какой то стиль какому либо объекту.Вот код
<script type="text/javascript">
	$(document).ready(function() {
	Вот тут часть кода не относящаяся  к вопросу
	var id = $(this).attr('id');
	$.cookie(''+ id, ''+ id, { expires: 365 });
	});
	var Cook = $.cookie(''+ id)
	if (Cook == '' + id) {
	$('body').css("display", "none");
	};
});

</script>

Теперь обясню суть.При клике на какой то код,мы узнаеём его id
var id = $(this).attr('id');
в куки сохраняется его id
$.cookie(''+ id, ''+ id, { expires: 365 });
Потом создаём переменнeю
var Cook = $.cookie(''+ id)
Далее идёт проверка
if (Cook == '' + id) {
	$('body').css("display", "none");
	};

И вот эта проверка не правельная.Если я напишу примерно так

if (Cook == id4) {
	$('body').css("display", "none");
	};

то всё работает,хотя мне нужно что бы эта проверка работаля для всех заданных элементо.Вроде описал суть(надо отредактировать if)Если что опишу по подробнее)
P.S простите за орфографические ошибки,пишу в темноте

evgh 07.06.2011 21:29

не понял в чём суть.

но и вопрос появился: '' + id что это такое?
(что сделает скрипт я знаю, но смысл не улавливаю)

"При клике на какой то код", кликай не на код, кликай на элементы))

я в jQuery плохо разбираюсь, но разве
$(document).ready(function() {
это не "брат" onload-a ?
или событие onclick не требуется "При клике на какой то код"

monolithed 07.06.2011 21:39

Цитата:

Сообщение от The_FactioN
if (Cook == '' + id) {

Цитата:

Сообщение от The_FactioN
if (Cook == id4) {

почему условия разные?
f(Cook == (id+4))

The_FactioN 07.06.2011 21:50

Вы не поняли суть.Ну вот у меня есть 5 блоков.При клике на каждый,в куки сохраняется их id/Далее при помощи if мы узнаём,если в куках есть id какого либо блока,то он закрывает его(просто код который выложил выше чуть изменён.)И вот этот if не правельно записан,нужна ваша помощь,я просто не стал целый код вылаживать а только ту часть,где ошибка..

evgh 07.06.2011 22:24

да поняли мы суть, просто хотели верить что не поняли :D

Цитата:

При клике на каждый
в представленном выше коде есть событие для ловли клика? тыкни меня в него носом.

и жди следующего посетителя который спроси что это за фигня '' + id

1) проверь '' + id в куки записывается?
2) проверь что именно записано в куках.
и если там тоже что ты проверяешь/сравниваешь через if то тогда будет дальше гадать

The_FactioN 08.06.2011 07:13

evgh,
Я не показал Вам часть кода для клика
''+id-в куки сохраняется id блока.Я могу записать чтото типа токого
'cookie'+id и в куках будет например cookieid5 но мне не нужны лишние слова в куках,поэтому я ставлю пустые кавычки и в куки сохраняется то ,что мне нужно.Но вот if функция с переменной не робит.Если бы я поставил конкретное значение куик тогра работало,но мне нужно что бы if выслеживал каждый кука не один только.

evgh 08.06.2011 12:19

Цитата:

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

Цитата:

2) проверь что именно записано в куках.
проверил? какие данные там хранятся.

The_FactioN 08.06.2011 13:23

evgh,
Говорю же..id1 id2 id3 id4 id5 и тд,смотря на какой блок нажать

evgh 08.06.2011 14:01

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

а собственно зачем проверка?
если присмотреться к коду в первом посте, то ты
1) получаешь айди
2) запихиваешь айди в куки
3) проверяешь есть ли там только что запихнутый айди
4) скрываешь элемент

3 пункт можно убрать, и проблема с проверкой исчезнет....хотя и так мне не понятно почему существует.

самое простое что можно предположить что айди элемента не "схожи" с айди которые в куках

evgh 08.06.2011 14:02

неужели процессор забыл как сравнивать строки :blink:


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