如何为两个元素设置一个事件处理程序?

时间:2018-02-05 13:10:25

标签: javascript jquery html select event-handling

目前第二个元素只在第一个元素被改变后才会被改变。

是否可以在两个元素上使用相同的事件处理程序,如果它们都是下拉框并且在构造正确的URL时保持选择两个元素,无论哪个元素接收事件?

$(function(){
   var url = '';
    $('#search_region').change(function () {
        url = $(this).val();
        window.location.hash = url;
         console.log(window.location.hash);
    });

    $('#search_categories').change(function () {
       if(url !==''){
         window.location.hash = url+"&"+$(this).val();
       }
        console.log(window.location.hash);
    });

});

3 个答案:

答案 0 :(得分:4)

  

目前,第二个元素仅在第一个元素之后发生变化   一个是。

在这种情况下,您可以类别的哈希值附加到区域

$('#search_region, #search_categories').change(function () {
   var regURL =  $('#search_region').val();    
   var catURL =  $('#search_categories').val();    

   window.location.hash += regURL + ( catURL ? ("&" + catURL) : "" );
   console.log(window.location.hash);
});

答案 1 :(得分:2)

$(function() {

  const changeHash = () => if ($('#search_region').val())
    window.location.hash = 
        $('#search_region').val() + "&" + $('#search_categories').val();

  $('#search_region').change(changeHash);
  $('#search_categories').change(changeHash);

});

答案 2 :(得分:-1)

$(function(){

    $('#search_region, #search_categories').change(function () {

         ...Your logic

    });

});

了解更多信息: https://api.jquery.com/multiple-selector/