Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Включение и выключение копирования значений полей (https://javascript.ru/forum/jquery/16736-vklyuchenie-i-vyklyuchenie-kopirovaniya-znachenijj-polejj.html)

SpongeBolt 19.04.2011 23:27

Включение и выключение копирования значений полей
 
Всем дорого времени суток есть такой вот код:
<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 не должно запускаться. Подскажите как это отключить.

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

рони 20.04.2011 02:06

SpongeBolt,
Вы к элементу прицепили keyup из-за того что этому элементу поменяли класс, keyup не отвалится ...
для отмены используйте unbind

SpongeBolt 20.04.2011 12:23

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

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

$("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");
           }

    });'


Часовой пояс GMT +3, время: 00:02.