我想在选择某个选项时做一些事情,我该如何定义? 这是一个例子:
<select id="mySelect">
<option>...</option>
...
<option>...</option>
<option id="myOption">I need exactly this option</option>
</select>
我怎么做?我是这样做的:
$('#city').change(function(){
if($("#another_city", this).is(":selected")){
alert('ok');
}
});
我想看看我怎么能以另一种方式做到这一点,当然,如果可能的话,不管怎么样。
答案 0 :(得分:2)
似乎唯一可行的方法是使用if
语句。 <option>
标签没有任何真正的事件处理程序。
答案 1 :(得分:2)
这有几种方法可行,但它不会与浏览器兼容。
$('#myOption').on('click', function(event) {
//write code here
alert('clicked');
});
仅在Firefox中使用here (jsFiddle)
Firefox是唯一的浏览器,允许在下拉列表中触发'onclick','onmousedown'和'onmousemove'事件。
如果下拉列表是一个列表框,那么大多数浏览器都支持上述事件,除了IE
使用插件或创建弹出窗口作为弹出菜单。通过这样做,您可以拥有所需的任何功能,而不仅限于本机DOM元素。
否则使用if语句
this网站上的文档非常广泛
答案 2 :(得分:0)
只需检查更改事件后的值:
$('#city').change(function (){
if (this.value === "One City") {
// do stuff
} else if (this.value === "Another City") {
// do other stuff
}
});
没有if
这样做是没有意义的。在select
元素和browsers don't agree on this下方存在一定程度的依赖于实现的行为。例如,Firefox会在某个选项上触发点击事件,而Chrome则不会。