2012-09-05 16 views
7

clickイベントをHTML optionの要素作業で作成する際に問題が発生しました。選択オプションでイベントをバインドする

単純なconsole.log('hello!');でも動作しません。

私はこれをしようとしています:

$('#mySelect option').bind('click', function(){ 
    console.log('hi!'); 
}); 

それはしばらくの間、働いていたが、その後停止しました。これはフィドルをJS

+0

あなたは最近変更されましたか?どのバージョンのjQueryを使用していますか?どのようにロードされていますか?ページ内の(またはスクリプトを含む)どこで要素を読み込むことに関してこの関数を呼び出していますか?要素が動的に生成されているか静的に生成されていますか? – jcolebrand

+0

最後の変更私は最後の作業バージョンにチェックアウトgitの場合でも動作しませんので、私は問題ではないと思う... jQueryのバージョンは最新であり、dinamicallyフッターに読み込まれ...オプションの要素は、PHPスクリプトから生成されますonload –

+0

jQueryがフッタにロードされている場合、これはどこにロードされていますか? – jcolebrand

答えて

13

コード以下

$('#myItem').change(function(){ 
      //do somthing 
}) 
+0

これは私が欲しかったものです。ありがとうございます。 – Zy0n

2

チェック -から

http://jsfiddle.net/4W826/

HTML

<select id="mySelect"> 
       <option value="volvo">Volvo</option> 
       <option value="saab">Saab</option> 
       <option value="mercedes">Mercedes</option> 
       <option value="audi">Audi</option> 
     </select> 

jQueryの

$('#mySelect').bind('click', function(){ 
alert('hi!'); 
}); 

変更〜Change

+1

助けてくれてありがとう! –

3

.on()を使用してバインドするには、<select> idを指定します。一般に、change<select>に呼び出されるイベントです。

したがって、結合事象中にoptionを言及する必要はない。

$(document).on('change','#mySelect', function(){<br> 
    console.log('hi!'); 
}); 

OR

$('#mySelect').bind('change',function(){<br> 
    console.log('hi!'); 
}); 
0

私は(.on使用するためにあなたをお勧めします)の代わりに.bindの()。私の場合は

$('#mySelect').on('change', function(){ 
    var $this = $(this), 
     $value = $this.val(); 

    alert($value); 

}); 

jsFiddle

0

の作品私と私はオプションをトリガする方法を見つけることができませんでしたために十分ではない変更は、私が何をしたかをクリックしているため

です
$('#mySelect').click(function() { 
     if ($(this).attr('optionclick') == '1') { 
      $(this).attr('optionclick', '0'); 
     } 
     else { 
      $(this).attr('optionclick', '1'); 
     } 
    }); 
1

これはケースを解決します - 私の必要性のために(いくつかの選択要素o nページがクリックされます)。しかしタッチ動作を検証しますが、この

$('.class_for_select').focus(function() { 
    // do something here 
}); 
1

サンプル例/クリックまたは選択

HTMLの変更に関するオプションのドロップダウン値や色を変更する方法を示しますwはFirefoxは、ChromeはOKのようですしていません。

<select name="options"> 
     <option value="1">Red</option> 
     <option value="2" selected="1">Green</option> 
     <option value="3">Blue</option> 
</select> 

のjQuery:

$("select").on("click", function() { 
    debugger; 
    var sVal = $(this).val(); 
    $(this).css("background-color", "red"); 
    $(this).find("option").css("background", "white"); 
    $(this).find('option:selected').css("background-color", "red"); 
    $("input").val($(this).val()); 
}); 

Demo

関連する問題