jQuery如何触发select的某个选项

jQuery如何触发select的某个选项,jquery,events,select,option,Jquery,Events,Select,Option,当选择某个选项时,我想做一些事情,我如何定义它? 以下是一个例子: <select id="mySelect"> <option>...</option> ... <option>...</option> <option id="myOption">I need exactly this option</option> </select> 我想看看我如何用另一种方法来实现它,

当选择某个选项时,我想做一些事情,我如何定义它? 以下是一个例子:

<select id="mySelect">
   <option>...</option>
   ...
   <option>...</option>
   <option id="myOption">I need exactly this option</option>
</select>

我想看看我如何用另一种方法来实现它,没有if,当然如果可能的话。

似乎唯一可行的方法是使用
if
语句。对于
标记没有任何真正的事件处理程序。

似乎唯一可行的方法是使用
if
语句。
标记没有任何真正的事件处理程序。

只需检查更改事件后的值:

$('#city').change(function (){
    if (this.value === "One City") {
        // do stuff
    } else if (this.value === "Another City") {
        // do other stuff
    }
});

如果没有意义,那么在没有
的情况下进行操作。在
select
元素和下面会发生某种程度的依赖于实现的行为。例如,Firefox会触发一个选项的点击事件,而Chrome不会。只需检查更改事件后的值:

$('#city').change(function (){
    if (this.value === "One City") {
        // do stuff
    } else if (this.value === "Another City") {
        // do other stuff
    }
});

如果
没有意义,那么在没有
的情况下进行操作。在
select
元素和下面会发生某种程度的依赖于实现的行为。例如,Firefox会触发一个选项的点击事件,而Chrome则不会。

有几种方法可以做到这一点,但它不兼容跨浏览器

$('#myOption').on('click', function(event) {
   //write code here
   alert('clicked');
});
仅在Firefox中可用(JSFIDLE)

  • Firefox是唯一的浏览器,它允许在下拉列表中的上触发“onclick”、“onmousedown”和“onmousemove”事件

  • 如果下拉列表是以列表框的形式出现,则除IE外,大多数浏览器都支持上述事件

  • 使用插件或创建一个弹出div作为弹出菜单。通过这样做,您可以拥有您想要的任何功能,而不是局限于本机DOM元素

  • 否则使用if语句


  • 关于它的文档在站点上非常广泛

    有几种方法可以实现这一点,但是它不兼容跨浏览器

    $('#myOption').on('click', function(event) {
       //write code here
       alert('clicked');
    });
    
    仅在Firefox中可用(JSFIDLE)

  • Firefox是唯一的浏览器,它允许在下拉列表中的上触发“onclick”、“onmousedown”和“onmousemove”事件

  • 如果下拉列表是以列表框的形式出现,则除IE外,大多数浏览器都支持上述事件

  • 使用插件或创建一个弹出div作为弹出菜单。通过这样做,您可以拥有您想要的任何功能,而不是局限于本机DOM元素

  • 否则使用if语句



  • 关于它的文档在网站上非常广泛

    哦,我想是:),无论如何,谢谢)我把这个问题留了几天,也许有人会提供一些东西)如果没有,我将你的答案标记为已接受:)为什么你说没有任何真正的标记事件处理程序?你测试过了吗?我通过在选项上使用id标记并使用jQuery设置eventListener来实现它。它对我来说很有用。跨浏览器兼容性问题。看这里:哦,我以为是:),无论如何,谢谢)我把这个问题留待了几天,也许有人会提供一些东西)如果没有,我将你的答案标记为接受:)为什么你说没有任何真正的标记事件处理程序?你测试过了吗?我通过在选项上使用id标记并使用jQuery设置eventListener来实现它。它对我来说很有用。跨浏览器兼容性问题。看这里:他说他想在没有if声明的情况下做这件事though@TheWeirdNerd这是要求的“另一种方式”。如果没有
    if
    的话,那么做就没有意义了。@Dennis嗯,我要求在没有if的情况下做这个,所以你的答案不符合我的问题,我已经这样做了,但我正在寻找另一种方法:),但谢谢你的回答)更新了我的答案-我给了你一个更好的
    if
    并用“这不可能”澄清了你的另一个问题他说他想在没有if声明的情况下做这件事though@TheWeirdNerd这是要求的“另一种方式”。如果没有
    if
    的话,那么做就没有意义了。@Dennis嗯,我要求在没有if的情况下做这个,所以你的答案不符合我的问题,我已经这样做了,但我正在寻找另一种方法:),但谢谢你的回答)更新了我的答案-我给了你一个更好的
    if
    并用“这不可能”来澄清你的另一个问题是的,对我来说也是,在这个例子中,没有提示我接受你的答案,我不会使用它,因为对我来说跨浏览器兼容性是一个很有价值的问题。我不明白第二点,你说的“列表框的形式”是什么意思,如果它不会分散你的注意力,你能描述一下吗?顺便说一句,对于任何使用它的人来说,在你添加的文档中有一点是这样的:如果你需要检测某个选项何时被选中,或者某个选择元素中的选择何时发生了变化,对select元素使用onchange事件。@flinth下拉列表有两种形式。1.一个典型的下拉列表,如果单击它,将显示选项。2.一个列表框,其中的尺寸已更改,以允许显示所有列表项。看这里。我刚刚添加了一个内联大小属性,不过还有其他方法。@flinth如果您喜欢这个答案,请单击“接受答案”。只是说;)。是的,对我来说也是如此,在这个例子中,没有提示我接受你的答案,我不会使用它,因为对我来说,跨浏览器兼容性是一个很有价值的问题。我不明白第二点,你说的“列表框的形式”是什么意思,如果它不会分散你的注意力,你能描述一下吗?顺便说一句,对于任何使用它的人来说,在你添加的文档中有一点是这样的:如果你需要检测某个选项何时被选中,或者某个选择元素中的选择何时发生了变化,对select元素使用onchange事件。@flinth下拉列表有两种形式。1.一个典型的下拉列表,如果单击它,将显示选项。2.一个列表框,其中的尺寸已更改为允许ro