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