Работа JS. Не работают события.
311
0
Здравствуйте. При разработки небольшого приложения для сайта я столкнулся с такой проблемой. У меня есть некий скрипт, например:
Добавлено через 01:17 сек.
Добавлено через 01:17 сек.
$(document).ready(function () { var date = new Date( new Date().getTime() + 60*1000 ); function getCookie(name) { var matches = document.cookie.match(new RegExp( "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" )); return matches ? decodeURIComponent(matches[1]) : undefined; } if(getCookie("specPanel")=="on"){ specStyle(getCookie("fontSize"),getCookie("bg"),getCookie("fontColor")); $("#btn-spec").html("Стандартная версия сайта"); $("#setting-spec").css({'display':'block'}); } function specStyle(fontSize, bg, fontColor){ $("html, font, p, a, b:no t(.not), span:no t(.not), table td, .main_menu").css({"color":fontColor, "background-image":"none","background-color" : bg, 'font-size': fontSize, "font-style":"normal","font-family": "Geneva, Arial, Helvetica, sans-serif"}); $("#logotip table a").html("В помощь студенту заочнику."); $(".main_menu img,marquee,#logotip table a img").css({"display":"none"}); $(".main_menu").css({"margin":"20px 0 20px"}); $("#footer").css({"margin":"30px 0 30px"}); $(".blog_small_row b, .blog_small_row a").css({'font-size': fontSize}); $("#logo_text font").css({"font-size":"40px"}); }
0
$("#btn-spec").click(function () { if (!navigator.cookieEnabled) { alert('Включите cookie для комфортной работы с этим сайтом'); } if($("#btn-spec").html()== "Включить версию для слабовидящих"){ $("#btn-spec").html("Стандартная версия сайта"); $("#setting-spec").css({'display':'block'}); document.cookie="fontSize=18px; path=/; expires="+date.toUTCString(); document.cookie="bg=#fff; path=/; expires="+date.toUTCString(); document.cookie="fontColor=#000; path=/; expires="+date.toUTCString(); //document.cookie="fontSize=18px; path=/; expires="+date.toUTCString(); document.cookie="specPanel=on; path=/; expires="+date.toUTCString(); specStyle(getCookie("fontSize"),getCookie("bg"),getCookie("fontColor")); }else{ $("#btn-spec").html("Включить версию для слабовидящих"); $("#setting-spec").css({'display':'none'}); document.cookie="specPanel=; path=/; expires="+date.toUTCString(); location.reload(); } });
Добавлено через 01:12 сек.
$(".ss").click(function(){ var fontSize = $(this).attr("data-font-size"); document.cookie="fontSize="+fontSize+"; path=/; expires="+date.toUTCString(); specStyle(getCookie("fontSize"),getCookie("bg"),getCookie("fontColor")); }); $(".bgs").click(function(){ var bg = $(this).attr("data-bg"); var fontColor = $(this).attr("data-font"); document.cookie="bg="+bg+"; path=/; expires="+date.toUTCString(); document.cookie="fontColor="+fontColor+"; path=/; expires="+date.toUTCString(); specStyle(getCookie("fontSize"),getCookie("bg"),getCookie("fontColor")); }); });
Добавлено через 02:59 сек.
Почему через небольшое время простоя события клик по элементам .ss и .bgs перестаёт работать?
0
Кажется разобрался, события срабатывают, но куки уже пустые
Станислав Крунич
07.12.2014 / 02:55
Пришелец
Пришелец
0
3. Mr.MarПых, возможно какой то контент на странице у тебя подгружается через ajax или модифицируется.
Всегда смотри console.info()... И замени все .click(function() на .on('click', function()
Всегда смотри console.info()... И замени все .click(function() на .on('click', function()
0
4. Stanislav-WEB, может помочь, но .on() не хорошо работает на моб. устройствах и сафари.
по теме, код не смотрел, но советую использовать плагин jQuery для работы с cookie, удобней.
по теме, код не смотрел, но советую использовать плагин jQuery для работы с cookie, удобней.
Для выполнения действия необходимо авторизоваться!