2012-05-18 2 views
2

Иногда я вижу следующую проблему: Я использую asp.net и JQuery на стороне клиента. Например, я хочу показать/скрыть texbox в зависимости от состояния флажка. Я пишу примерно так:JQuery событие «onclick» плюс «onload»

$(function() {   

     $('#<%=chbMyCheckbox.ClientID %>').click(function(event) { 

      if (this.checked) { 
      $('#txFirstAid').show(); 
      } else { 
      $('#txFirstAid').hide(); 
      } 
     }); 
    }); 

Он отлично работает. Но я также хочу запустить этот код, когда страница просто загружена. Конечно, я могу перемещать код для отдельной функции, как это:

$(function() {   
     myFunc(); 
     $('#<%=chbMyCheckbox.ClientID %>').click(function(event) { 
      myFunc(); 

     }); 

      function myFunc() 
      { 
      if (this.checked) { 
      $('#txFirstAid').show(); 
      } else { 
      $('#txFirstAid').hide(); 
      } 
      } 
    }); 

Возникает вопрос: можно ли как-то не двигаться кода otside, и написать что-то вроде этого

$('#<%=chbMyCheckbox.ClientID %>').click(function(event).onloadEvent() 
{ 
    bla-bla 
} 
+0

.click (myFunc) короче – olivieradam666

ответ

5

Вы можете использовать JQuery-х trigger() метод для запуска события clickLoad.

, например, зарегистрировать событие щелчка:

$('#someElement').on('click', function() { console.log('I BE CLICkED') });

Спускового это с:

$('#someElement').trigger('click');

Вы можете вызвать любое событие с помощью trigger(), а также пожар пользовательских событий. (Которые позволяют привязать к событию, запущенному с помощью плагинов и т.д.

The full trigger documentation is here и Heres хороший пост об использовании custom events in jquery

0

Как прятать текстовое поле на сервере при отображении страницы? Таким образом, пользователь не могу видеть textbox до domready.