jquery onclick或onchange上的不同元素

时间:2016-05-04 20:56:01

标签: javascript jquery

我有一个选择菜单和两个箭头,用于更改选择(+/-)的值。今天,我有一个功能触发点击箭头,它更新选择中的值,但我还想添加一个功能,如果有人直接在下拉列表中更改值(而不是使用箭头)

我可以重新编写相同的函数,只需将箭头的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
   });
});   

3 个答案:

答案 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);
});