2012-01-05 4 views
0

Я меняю стиль кнопки, когда через jQuery, когда нажимается кнопка. Ниже приведен код.Класс jQuery изменился только один раз

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#btnDiv .down").click(function() { 
      $(this).addClass("click"); 
     }); 
    }); 

Так как я вложил #btnDiv в UpdatePanel выше функциональность действует только один раз. В чем причина и проблема в работе.

+0

В чем проблема? – Blender

+1

Что значит, что он действует только один раз? Вы не можете добавить один и тот же класс несколько раз к одному элементу (по крайней мере, это не имеет смысла). –

+0

Проблема в том, что когда я нажимаю кнопку, имеющую класс .down, он должен менять свой класс. Мой вопрос заключается в том, что он отлично работает, но поскольку я вложил его в updatePanel, код класса изменений действует только в первый раз – Shah

ответ

1

При рендеринге вашей обновленной панели вам необходимо выполнить этот javascript еще раз, иначе бывшее связанное событие не было после обновления.

Посмотрите на jQuery.on()

Если у вас есть JQuery версии, прежде чем 1.7, вам, возможно, придется использовать функцию .delegate() или .live().

Так что ваш код может быть:

$(document).ready(function() { 
     $("#btnDiv .down").on("click",function() { 
      $(this).addClass("click"); 
     }); 
    }); 

Вам не нужно, чтобы сделать приведенный выше код каждый раз, когда вы обновляете вашу панель. Просто выполните один раз.

+0

Отличный .live() сделал для меня работу – Shah

0

Предполагая, что «UpdatePanel» динамически меняет свое содержание. Затем вам нужно использовать функцию jquery .on() (или .delegate()) для привязки событий для динамически обновляемых элементов.