[英]How to trigger a event when a dropdown is opened?
当我们打开它时,我想触发一个事件以刷新下拉菜单的所有选项。 并确保当我们关闭下拉菜单或在其中选择任何选项时,不会触发该事件。
我正在使用以下html代码进行下拉。
<select id="SelectedNic" class="dropdown" name="SelectedNic" type="text">
<option value="">Select</option>
<option value="A">B</option>
<option value=C">D</option>
</select>
有人可以建议正确的做法吗? 我正在使用jquery。
使用.on("focus", callback)
来执行此操作。 仅在下拉菜单处于活动状态时才会触发它,而不是在关闭它或选择任何选项时才触发它。
$("#SelectedNic").on("focus", function(){ console.log("Opened"); })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select id="SelectedNic" class="dropdown" name="SelectedNic" type="text"> <option value="">Select</option> <option value="A">B</option> <option value=C">D</option> </select>
尝试同时使用change和keydown。
$('#SelectedNic').on('change keydown', function () {
RegisterPanelChangeHandler();
});
只需在选择框的focus
上使用函数调用即可。 click
事件将被触发,即使关闭也是如此。
<select onFocus="myFunction()">
<option value="">Select</option>
<option value="A">B</option>
<option value=C">D</option>
</select>
Try using val() to change to the value and trigger() to manually fire the event.
更改事件处理程序必须在触发器之前声明。
$('#SelectedNic').change(function(){ var data= $(this).val(); alert(data); }); $('#SelectedNic') .val('A') .trigger('change');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <select id="SelectedNic" class="dropdown" name="SelectedNic" type="text"> <option value="">Select</option> <option value="A">B</option> <option value="C">D</option> </select>
使用香草JS时,我更喜欢'focusin'事件而不是'focus'事件,因为前者会冒泡。
使用jQuery,您将使用“焦点”,jQuery会为我们修复它。
let sltEl = document.getElementById('select-el') sltEl.addEventListener('focusin', evt => { console.log('opened') })
<select id="select-el" class="dropdown" name="selectEl"> <option disabled selected>Select an option</option> <option value="A">B</option> <option value="C">D</option> </select>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.