Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.04.2011, 23:27
Новичок на форуме
Отправить личное сообщение для SpongeBolt Посмотреть профиль Найти все сообщения от SpongeBolt
 
Регистрация: 19.04.2011
Сообщений: 3

Включение и выключение копирования значений полей
Всем дорого времени суток есть такой вот код:
<div class="connection_off" name="connection">ru</div> 
<textarea cols="43" rows="5" lang="ru" name="PropertiesDescription[ru][property_options]" id="PropertiesDescription_ru_property_options"/>
<textarea cols="43" rows="5" lang="en" name="PropertiesDescription[en][property_options]" id="PropertiesDescription_en_property_options"/>


При клике на div должно выполнятся следующее действие:

$("div[name=connection]").click(function(){
           var language = $(this).val();
           var class = $(this).attr("class");
           if(class == "connection_on")
           {
                    $(this).attr("class","connection_off");
           }
           else
           {
               $("textarea[lang="+language+"]").keyup(function(){
                    var value = $(this).val();
                    $("textarea[name!="+language+"]").val(value);
               });

               $(this).attr("class","connection_on");
           }

    });


Т.е при клике на див у дива автоматически меняется класс на "connection_on" и теперь если мы будем вводить что-либо в первую textarea, все будет автоматически копироваться во вторую. Это все прекрасно работает.
Но вот если нажать еще раз то опять у дива меняется класс на "connection_off", но почемуто всеравно информация продолжает копироваться из первой textarea во вторую. Поидее должно срабатывать условие где class == "connection_on" и условие else не должно запускаться. Подскажите как это отключить.

Надеюсь я внятно объяснил что имею введу.
Спасибо.

Последний раз редактировалось SpongeBolt, 19.04.2011 в 23:30.
Ответить с цитированием
  #2 (permalink)  
Старый 20.04.2011, 02:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

SpongeBolt,
Вы к элементу прицепили keyup из-за того что этому элементу поменяли класс, keyup не отвалится ...
для отмены используйте unbind
Ответить с цитированием
  #3 (permalink)  
Старый 20.04.2011, 12:23
Новичок на форуме
Отправить личное сообщение для SpongeBolt Посмотреть профиль Найти все сообщения от SpongeBolt
 
Регистрация: 19.04.2011
Сообщений: 3

Спасибо все получилось.

Кому нужно код будет выглядеть так

$("div[name*=connection]").live("click",function(){
           var language = $(this).val();
           var class = $(this).attr("class");
           if(class == "connection_on")
           {
                    $(this).attr("class","connection_off");
                    $("textarea[lang*="+language+"]").unbind();

           }
           else
           {
               $("textarea[lang*="+language+"]").keyup(function(){
                    var value = $(this).val();
                    $("textarea[name!="+language+"]").val(value);
               });

               $(this).attr("class","connection_on");
           }

    });'
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача значений полей через JS MCTrane Общие вопросы Javascript 11 01.12.2010 18:32
проверка полей формы!!!! DENAT Общие вопросы Javascript 0 05.06.2008 22:14