jqueryselect选项点击处理程序

给定:

<select id="mySelect"> <option>..</option> ... </select> 

使用selectID,我怎样才能触发一个点击事件的选项之一? 我尝试直接将事件附加到select,但是这会触发一个事件,只要点击select(即使没有选项)。 哦,这是一个多选(虽然我不认为这件事)。

你想要“改变”事件处理程序,而不是“点击”。

 $('#mySelect').change(function(){ var value = $(this).val(); }); 
 $('#mySelect').on('change', function() { var value = $(this).val(); alert(value); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script> <select id="mySelect"> <option value='1'>1</option> <option value='2'>2</option> <option value='3'>3</option> <option value='4'>4</option> <option value='5'>5</option> <option value='6'>6</option> <option value='7'>7</option> <option value='8'>8</option> </select> 

你可以附加一个焦点事件来select

 $('#select_id').focus(function() { console.log('Handler for .focus() called.'); }); 

一个可能的解决scheme是为每个选项添加一个类

 <select name="export_type" id="export_type"> <option class="export_option" value="pdf">PDF</option> <option class="export_option" value="xlsx">Excel</option> <option class="export_option" value="docx">DocX</option> </select> 

然后使用这个类的click处理程序

 $(document).ready(function () { $(".export_option").click(function (e) { //alert('click'); }); }); 

更新:它看起来像代码在FF,IE和Opera的作品,但不是在Chrome中。 看看规格http://www.w3.org/TR/html401/interact/forms.html#h-17.6我会说这是在Chrome中的错误。;

我在这种情况下所做的是,我把这样的选项元素OnClick事件:

 <option onClick="something();">Option Name</option> 

然后,创build一个脚本函数,像这样:

 function something(){ alert("Hello"); } 

更新:不幸的是,我不能评论,所以我在这里更新
TrueBlueAussie显然jsfiddle有一些问题,检查这里,如果它的工作与否: http : //js.do/code/klm