2

次の問題が発生することがあります。 クライアント側で asp.net と JQuery を使用しています。たとえば、チェックボックスの状態に応じて texbox を表示/非表示にしたい。私はこのようなものを書きます:

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

問題は、どうにかしてコードを別の場所に移動せずに、このようなものを書くことは可能ですか?

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

2 に答える 2

5

jqueryのtrigger()メソッドを使用して、クリックイベントonLoadを発生させることができます。

たとえば、クリックイベントを登録します。

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

トリガー:

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

trigger()カスタムイベントを使用するだけでなく、任意のイベントをトリガーできます。(プラグインなどによって発生するイベントにバインドできます。

完全なトリガードキュメントはここにあり、jqueryでのカスタムイベントの使用に関する良い投稿がここにあります

于 2012-05-18T12:56:24.820 に答える
0

ページをレンダリングするときに、サーバー上のテキストボックスを非表示にするのはどうですか? そのため、ユーザーは domready の前にテキストボックスを見ることができません。

于 2012-05-18T13:03:53.117 に答える