日期:2014-05-16  浏览次数:20432 次

jquery如何给<opiton>添加事件?
下面两种情况浏览器都没有反应。

$('#select option').click(funcion ()
{
    alert('1');
}

$('#select option').bind('click',function ()
{
     alert('1');
}

请问如何给一个<select>里面的<opition>添加事件呢?
jqeury option 添加事件

------解决方案--------------------
它本身没有事件;

  $("select").change(function () {
        alert($(this).val());
        alert($(this).find("option:selected").text());
    });

  
------解决方案--------------------
option能支持click事件
可能执行时select中没有option,你用live试试
$('#select option').live('click',function ()
{
     alert('1');
}
如果是高版本jquery不支持live,用委托替代
------解决方案--------------------
可能是SELECT引起的。不过LZ可以这样解决:

$("option").each(function() {
    $(this).bind("click", function() {
        alert($(this).val());
    });
});

$("select").bind("change", function() {
    var index = $(this).prop("selectedIndex");
    $("option:eq(" + index + ")").click();
});


即SELECT选项被改变后,获取当前选中的option,并触发click事件
------解决方案--------------------
楼主的目的是什么呢?如果只是想在特定的option被选中时执行操作,最好是在select的change事件里根据this.value或this.selectedIndex判断。如果一定要在option上加click事件,可以用下面这种方法,通过this.value或this.index()判断点击的哪一个option。

$('#select').on('click', 'option', function () {
alert(this.value);
alert($(this).index());
});