11

我想响应用户在选择元素中选择项目。然而这个jQuery:

$('#platypusDropDown').select(function () {
    alert('You selected something');
});

...什么也没做。尽管 jsFiddle 认为它是有效的 jQuery,但它没有显示任何警报。

Click 事件有效,但它太快了 - 在进行选择之前,它会在单击选择元素时触发。

当然,我真的很想做类似的事情:

$('#platypusDropDown').select(function () {
    var selection = $('platypusDropDown').val;
    $.getJSON('platypus.json', selection, data() {
        // . . .
    });
});

的HTML:

<select id="platypusDropDown">
    <option value="duckbill">duckbill</option>
    <option value="duckbillPlatypus">duckbillPlatypus</option>
    <option value="Platypus">Platypus</option>
    <option value="Platypi">Platypi</option>
</select>
4

1 回答 1

10

您需要使用更改事件

$('#platypusDropDown').change(function () {
    var selection = this.value; //grab the value selected
    $.getJSON('platypus.json', selection, data() {
    . . .
    });
});

小提琴

加上$('platypusDropDown').val这里 val 应该是val()并且您不需要在元素上再次创建一个 jquery 对象,this在处理程序内部代表 DOM 元素(选择事件绑定到的),您可以直接使用this.value或访问该值$(this).val()

于 2013-07-01T22:00:26.373 回答