Javascript 打开下拉列表时如何触发事件?
当我们打开下拉列表时,我想触发一个事件来刷新下拉列表的所有选项。并确保在关闭下拉列表或选择其中的任何选项时不会触发该事件 我使用下面的html代码作为下拉列表Javascript 打开下拉列表时如何触发事件?,javascript,jquery,html,Javascript,Jquery,Html,当我们打开下拉列表时,我想触发一个事件来刷新下拉列表的所有选项。并确保在关闭下拉列表或选择其中的任何选项时不会触发该事件 我使用下面的html代码作为下拉列表 <select id="SelectedNic" class="dropdown" name="SelectedNic" type="text"> <option value="">Select</option> <option value="A">B</option&
<select id="SelectedNic" class="dropdown" name="SelectedNic" type="text">
<option value="">Select</option>
<option value="A">B</option>
<option value=C">D</option>
</select>
挑选
B
使用.on(“焦点”,回调)
执行此操作。只有当您的下拉菜单处于活动状态时才会触发,而不是当您将其关闭或选择任何选项时
$(“#SelectedNic”)。关于(“焦点”,函数(){
控制台日志(“打开”);
})
挑选
B
只需在选择框的focus
上使用函数调用即可<代码>单击
事件将被触发,即使很好地关闭它
<select onFocus="myFunction()">
<option value="">Select</option>
<option value="A">B</option>
<option value=C">D</option>
</select>
挑选
B
必须在触发器之前声明更改事件处理程序
$('#SelectedNic')。更改(函数(){
var data=$(this.val();
警报(数据);
});
$(“#SelectedNic”)
.val('A')
.触发(“变更”)代码>
挑选
B
D
对于vanilla JS,我更喜欢“focusin”而不是“focus”事件,因为前者是气泡
有了jQuery,您将使用“焦点”,jQuery为我们修复了它
let sltEl=document.getElementById('select-el'))
sltEl.addEventListener('focusin',evt=>{
console.log('opened')
})
选择一个选项
B
D
尝试同时使用change和keydown
$('#SelectedNic').on('change keydown', function () {
RegisterPanelChangeHandler();
});
$('#SelectedNic').on('change keydown', function () {
RegisterPanelChangeHandler();
});