我正在尝试在下拉菜单中点击选项时触发事件。我找不到任何解释如何做到这一点的内容。我的目标是触发事件并使用其值。当我使用.on而不是.change时,每次单击选择器时都会触发事件,这不是我想要的,因为我只想使用所选项目的值。
假设这是动态生成的:
假设这是动态生成的:
我该如何:
假设这是动态生成的:
<select id="dropdownOne">
<option value="1">NumberOne</option>
</select>
假设这是动态生成的:
<select id="dropdownTwo">
<option value="1">NumberOne</option>
<option value="2">NumberTwo</option>
</select>
JS:
$("select").change("click", function () {
//This event is not fired in dropdown one
//This event is only fired in dropdown two if I change the option
var value = $(this).val();
if(value == 1){
console.log("This logs number 1");
}else{
console.log("This logs number 2");
}
}
我该如何:
- 在只包含一个项目的下拉列表中触发项目上的事件
- 在多次点击的项目上触发事件
“重复”有6个答案:
Vicky Kumar:表示该问题的代码很好并且有效。 这个答案对我的问题没有帮助
ajpocus:有一个答案,后来被编辑说它不起作用。 不起作用
Krupesh Kotecha:在选择上使用单击事件,与.on的行为相同 这不是我想要的
Teja:修复了那个问题,但不是我的问题,当选择只有1个选项或多次单击选项时仍然不会触发任何事件 这不是我想要的
charu joshi:使用.on事件和:option selecter,不起作用,因为:option selecter是未知的,也无法在jQuery API文档中找到 不起作用
derp:此答案解释了如何删除重复项,然后使用更改事件,这可能适用于“重复”问题,但我从未在我的选择中加载过重复项,即使是这样,它仍然使用更改事件,这不符合我想要的,如我在问题中所解释的 这个答案对我的问题没有帮助
因此,“重复”问题的所有上述答案均不适用于我的问题/问题。此外,原始海报也没有标记这些答案中的任何一个为已接受。
change
事件的问题在哪里?你可以在注册事件时调用处理程序,如下所示:$("select").on("change", function(){}).change();
- Rayon$("select").change("click", function () {
或者$("select").on("click/change", function () {
? - a_nainclick
和change
事件是一个不好的主意,因为change
事件会紧随着下拉菜单本身的click
事件。所以最好决定何时附加click
事件。 - Rohit416$( "select" ) .change(function () { $('#select option:selected').val() }
- Suraj Singh