我有一个选择菜单和两个箭头,用于更改选择(+/-)的值。今天,我有一个功能触发点击箭头,它更新选择中的值,但我还想添加一个功能,如果有人直接在下拉列表中更改值(而不是使用箭头)
我可以重新编写相同的函数,只需将箭头的ID更改为选择的ID,然后将/data/file/abcd_12bd_def_ghijk.txt match abcd_...._def_.*\.txt
更改为onclick
,但这将是重新生成的。我更喜欢使用OR操作并且只编写一次函数。
有没有办法在两个事件之间进行OR操作?
当前代码:
onchange
我想要实现的目标:
$(document).ready(function(){
$('img[id*="downArrow"]').on("click", function(){
//update the value in the select
});
});
答案 0 :(得分:1)
您可以使用选择器之间的逗号和事件之间没有逗号来组合它们。
你需要小心,因为你可能不希望在点击select
元素时触发该功能:
$('img[id*="downArrow"], #mySelect').on('click change', function(e) {
if(e.type==='change' || this.id!=='mySelect') {
alert('Success!');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img id="downArrow" src="http://placehold.it/50x50">
<select id="mySelect">
<option>Option 1</option>
<option>Option 2</option>
</select>
答案 1 :(得分:0)
你正朝着正确的方向前进只是一个错误的“改变”而不是“改变”
$(document).ready(function(){
$('img[id*="downArrow"]',#idOfMySelect).on("click change", function(){
//update the value in the select
});
});
答案 2 :(得分:0)
您可以在2个侦听器上使用单个方法。例如:
function onEventFunction(e){
}
$(document).ready(function(){
$('img[id*="downArrow"]').on("click change", onEventFunction);
});