Просмотр полной версии : Проблема с if и cookie
The_FactioN
07.06.2011, 20:58
Вообщем у меня есть код,Часть его работы составляет сохрание в куки различные значения(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 простите за орфографические ошибки,пишу в темноте
не понял в чём суть.
но и вопрос появился: '' + id что это такое?
(что сделает скрипт я знаю, но смысл не улавливаю)
"При клике на какой то код", кликай не на код, кликай на элементы))
я в jQuery плохо разбираюсь, но разве $(document).ready(function() { это не "брат" onload-a ?
или событие onclick не требуется "При клике на какой то код"
monolithed
07.06.2011, 21:39
if (Cook == '' + id) {
if (Cook == id4) {
почему условия разные?
f(Cook == (id+4))
The_FactioN
07.06.2011, 21:50
Вы не поняли суть.Ну вот у меня есть 5 блоков.При клике на каждый,в куки сохраняется их id/Далее при помощи if мы узнаём,если в куках есть id какого либо блока,то он закрывает его(просто код который выложил выше чуть изменён.)И вот этот if не правельно записан,нужна ваша помощь,я просто не стал целый код вылаживать а только ту часть,где ошибка..
да поняли мы суть, просто хотели верить что не поняли :D
При клике на каждый
в представленном выше коде есть событие для ловли клика? тыкни меня в него носом.
и жди следующего посетителя который спроси что это за фигня '' + id
1) проверь '' + id в куки записывается?
2) проверь что именно записано в куках.
и если там тоже что ты проверяешь/сравниваешь через if то тогда будет дальше гадать
The_FactioN
08.06.2011, 07:13
evgh,
Я не показал Вам часть кода для клика
''+id-в куки сохраняется id блока.Я могу записать чтото типа токого
'cookie'+id и в куках будет например cookieid5 но мне не нужны лишние слова в куках,поэтому я ставлю пустые кавычки и в куки сохраняется то ,что мне нужно.Но вот if функция с переменной не робит.Если бы я поставил конкретное значение куик тогра работало,но мне нужно что бы if выслеживал каждый кука не один только.
но мне не нужны лишние слова в куках,поэтому я ставлю пустые кавычки
пустые кавычки ничего не передают, потому что они пустые, так что незачем их ставить.
2) проверь что именно записано в куках.
проверил? какие данные там хранятся.
The_FactioN
08.06.2011, 13:23
evgh,
Говорю же..id1 id2 id3 id4 id5 и тд,смотря на какой блок нажать
если после кликанья по элементам, в куках оказываются все их айди, то if должен правильно срабатывать, или ты чего-то не договариваешь.
а собственно зачем проверка?
если присмотреться к коду в первом посте, то ты
1) получаешь айди
2) запихиваешь айди в куки
3) проверяешь есть ли там только что запихнутый айди
4) скрываешь элемент
3 пункт можно убрать, и проблема с проверкой исчезнет....хотя и так мне не понятно почему существует.
самое простое что можно предположить что айди элемента не "схожи" с айди которые в куках
неужели процессор забыл как сравнивать строки :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 я так же написал и тоже не пашет
видите как её нужно написать в alert?нет, не вижу, покажи :(
alert(''+id); или alert(id); одна хр*нь!
но я сдаюсь, так как приходится гадать на кофейной гуще.
в том коде который ты предоставил на обозрение ошибок вроде нет
function ff()
{
var id="123";
if(id == ''+id) alert(''+id+' с дуростью');
if(id == id) alert(id+' без дурости');
}оба варианта работают на ура
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot