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:

The_FactioN 08.06.2011 15:06

evgh,
Ну вот смотри.
Вот код с переменной и alert
[JS] <script type="text/javascript">
$(document).ready(function() {
$('.close').click(function() {
var id = 'fffff'
alert(''+id);
};
});

</script> [/LS]
При клике на .closе вылазит окно и переменной(видите как её нужно написать в alert?)Так вот и с if я так же написал и тоже не пашет

evgh 08.06.2011 16:40

Цитата:

видите как её нужно написать в alert?
нет, не вижу, покажи :(

alert(''+id); или alert(id); одна хр*нь!

но я сдаюсь, так как приходится гадать на кофейной гуще.
в том коде который ты предоставил на обозрение ошибок вроде нет

evgh 08.06.2011 16:48

function ff()
  {
  	var id="123";
  	if(id == ''+id) alert(''+id+' с дуростью');
  	if(id == id) alert(id+' без дурости');
  }
оба варианта работают на ура


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