2010-05-28 3 views
0

Я хотел бы реализовать API Javascript, похожий на переключатель освещения.Состояние функций переключения

Например, в качестве пользовательского интерфейса действуют две кнопки на фактической странице HTML.

Обе кнопки имеют обработчики событий, которые вызывают другую функцию.

Каждая функция имеет коды, которые действуют как состояние, например.

button1.onclick=function(){ 
    $("div").click(
     //code effects 2 
    ) 
} 

button2.onclick=function(){ 
    $("div").click(
     //Code effects 2 
    ) 
} 

I код хорошо работает на поверхности, но функции состояния 2 перекрываются.

Эффекты будут проходить до конца следующего этапа до следующей перезагрузки документа.

В принципе, я хочу, чтобы при нажатии кнопки 1 оно переключило «ВЫКЛ» на состояние функции, вызываемое другой кнопкой, и наоборот.

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

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

Заранее спасибо.

ответ

1

Для этого вам просто нужно место для хранения «состояния». Вы можете просто сохранить информацию о включении/выключении в файле cookie. Каждая функция javascript затем может проверять и/или обновлять значение в файле cookie.

На странице загрузки вы можете установить начальное состояние в куки, чтобы все, что вы хотите (вкл/выкл)

Использование JQuery, пример:

$(document).ready(function(){ 

    //set cookie to OFF state during initial load 

    //add event handler for On button 
    $('#buttonOn').click(function(){ 
     //set cookie to ON 
    }); 

    //add event handler for Off button 
    $('#buttonOff').click(function(){ 
     //set cookie to OFF 
    }); 

}); 

JQuery имеет множество плагинов для поддержки печенья. Лучший из тех, что я использовал: http://www.stilbuero.de/2006/09/17/cookie-plugin-for-jquery/

+0

кроме cookie есть способ через javascript, который может каким-то образом скомпенсировать сам функциональный блок? Как, например, реверсирование эффекта? –

+0

По существу то, что вы просите, является механизмом с двумя состояниями. Для этого самым простым способом является сохранение информации о состоянии «где-то». Файлы cookie будут работать. Другой вариант - в скрытом поле. Скрытое поле может работать хорошо, потому что вам не нужно беспокоиться о блокировке файлов cookie браузера (довольно редко, но возможно). –

+0

Почему мы усложняем использование файлов cookie? Просто простая переменная будет работать !? – Matt

Смежные вопросы