2011-07-27 14 views
1

ユーザーがonchangeイベントを使用して特定のオプション(Customizeという名前)を選択し、div(customizeOptionのidを持つ)がポップアップし、ユーザーがdivを終了すると/彼女はボタンをクリックします(idはdonebtnです)。このような機能を持ち、onchangeイベントを使用することをお勧めしますか?他の提案は本当に感謝しています。jqueryでonchangeイベントを使用する

function optionCheck(events) { 

    if(events.value=="Customize") { 
     $('document').ready(function() { 
      $("#customizeOption").show(400); 
      $("#donebtn").click(function() { 
       $("#customizeOption").hide(400); 
      }); 
     }); 
    } 
} 

答えて

1

$('document').ready(function() {});

これは本体のみのonloadを模倣することです。

私は上記のコードを書き換えることができます。

function optionCheck(events) { 
    if(events.value=="Customize") { 
     $("#customizeOption").show(400); 
     $("#donebtn").click(function() { 
      $("#customizeOption").hide(400); 
     }); 
    } 
} 

DIVがレンダリングされた後に必ず書き込んでください。また、ブラウザがこのJSをコンパイルしているときに利用できます。このスクリプトはページの一番下に置くことをお勧めします。


EDITED

SELECT BOXは、クラスmySelectBoxを持っているあなたはそれをコード内の任意の場所を配置する場合、以下の機能があなたのために働くだろうと仮定すると。

$('document').ready(function() { 
    $('.mySelectBox').change(function(){ 
     if($(this).attr('value')) == "Customize") { 
      $("#customizeOption").show(400); 
      $("#donebtn").click(function() { 
       $("#customizeOption").hide(400); 
      }); 
     } 
    }); 
}); 
+0

ご回答ありがとうございます。これは関数なので、なぜそれがページの一番下になければならないことを示唆しましたか?あなたが知っているように、関数は呼び出されたときにのみ実行されます。私はこの機能をjsファイルに持っていて、私の文書の頭に含まれています。あなたの助けてくれてありがとう012 '' '' '#4''のステートメント' $( "#donebtn") 'は、その' ID'の要素を取得するJQuery関数である – Tim

+0

です。したがって、そのクエリをページの上部に配置すると、その関数は要素を見つけることができず、 'click'関数を必要な要素にバインドしません。そのような場合には、 '.live(eventType、handler)'を使用します。 –

+0

あなたの返事にはとても感謝しています。つまり、最初はdocument.ready()関数内にすべての文がありました。あなたが知っているように、これらのステートメントはすべてのDOMオブジェクトがロードされたときにのみ実行されます。したがって、私たちのbtnの場合、click関数をバインドすると要素が見つけられます。これは私が最初に投稿したdoucment.ready関数を残している場合のみです。私が間違っている場合は私を修正してください。ありがとう – Tim

関連する問題