2011-06-30 3 views
3

私はフォームを持っています。フィールドの1つはselectフィールドで、5つのオプションがあります。 5番目のオプションをクリックすると、隠しdivが表示されます。私は他の4つがクリックされても何も起こらないようにしたい。選択/オプションフォームでjQueryイベントを発生させようとしています

FireFoxでは動作しますが、それ以外は動作しません。それを少し調べた後、Chrome/IEはselectを使ってonClickの発射をさせてくれないようです。これまでのところ、すべての選択肢はonChangeをSelect全体で使用していましたが、onChangeを使用して5番目のオプションをクリックしたときにコードを起動するだけではわかりませんでした。どんな助けもありがとう。

カスタムプロットはに設定されています。デフォルトではです。 id * d * custom_proptions *オプションがクリックされたときにdiv id * d * custom_proptions *が表示され、最初に表示されている場合はそれを元に戻してから、他のオプションの1つをクリックします。

<div class="proptions_container"> 

<select name="proptions" id="proptions" class="proptions"> 
<option value="0" class="default_proptions" id="choose_prompt">Choose your Proptions&#8230;</option> 
<option value="1" class="default_proptions">Yes <strong>or</strong> No</option> 
<option value="2" class="default_proptions">Before <strong>or</strong> On/After</option> 
<option value="3" class="default_proptions">More than <strong>or</strong> Less than</option> 
<option value="4" class="default_proptions">Better <strong>or</strong> Worse</option> 
<option value="5" id="custom_proptions_option">A <strong>or</strong> B (customize below)</option> 
</select> 

<div id="custom_proptions"> 

<input name="proption_1" type="text" class="text" id="proption_1" placeholder="First Proption" /> 

<span id="custom_or">or</span> 

<input name="proption_2" type="text" class="text" id="proption_2" placeholder="Second Proption" /> 

</div> 

<script> 
$('option#custom_proptions_option').click(function() { 
$('div#custom_proptions').slideDown('slow'); 
}); 
$('option.default_proptions').click(function() { 
$('div#custom_proptions').slideUp('slow'); 
}); 
</script> 

</div> 

答えて

12

はなく、唯一の目標値のため、変更イベントでそれを実行します。

<script> 
    $('#proptions').change(function() { 
     if ($(this).find(':selected').val() === '5') { 
      $('div#custom_proptions').slideDown('slow'); 
     } else { 
      $('div#custom_proptions').slideUp('slow'); 
     } 
    }); 
</script> 
+0

ありがとう!これは完全に動作します、私が理解しようとしていたものです。 – Erik

2

clickedはここでは適切なイベントではありません。 changeを使用する必要があります。イベントが発生すると、そのイベントがID /クラス(またはあなたのケースの値)をチェックし、必要に応じてdivを表示します。

+1

'ヴァル(あれば実際には、彼はちょうどチェックすることができ)'右、5ですか? –

+0

はい、あなたは正しいです。 –

0

$("selector").live('click',function(){ 
}); 

を使用してみてください、私はそれでより良い運を持っています。

+0

また、多くのライブイベントがあります。 –

関連する問題