Работа JS. Не работают события.
1.
fhgdfhdfhdf (04.11.2014 / 14:21)
Здравствуйте. При разработки небольшого приложения для сайта я столкнулся с такой проблемой. У меня есть некий скрипт, например:
Добавлено через 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"});
}
2.
fhgdfhdfhdf (04.11.2014 / 14:23)
$("#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 перестаёт работать?
3.
fhgdfhdfhdf (04.11.2014 / 14:48)
Кажется разобрался, события срабатывают, но куки уже пустые
4.
Станислав Крунич (07.12.2014 / 02:55)
3.
Mr.MarПых, возможно какой то контент на странице у тебя подгружается через ajax или модифицируется.
Всегда смотри console.info()... И замени все .click(function() на .on('click', function()
5.
Tegos (07.12.2014 / 11:06)
4.
Stanislav-WEB, может помочь, но .on() не хорошо работает на моб. устройствах и сафари.
по теме, код не смотрел, но советую использовать плагин jQuery для работы с cookie, удобней.
URL:
https://visavi.net/topics/41535