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

Javascript 如何为两个元素设置一个事件处理程序?,javascript,jquery,html,select,event-handling,Javascript,Jquery,Html,Select,Event Handling,目前,第二个元素只有在第一个元素被修改之后才被修改 如果两个元素都是下拉框,并且在构建正确的URL时保持两个元素都处于选中状态,那么无论哪个元素接收到事件,是否可以在这两个元素上使用相同的事件处理程序 $(function(){ var url = ''; $('#search_region').change(function () { url = $(this).val(); window.location.hash = url;

目前,第二个元素只有在第一个元素被修改之后才被修改

如果两个元素都是下拉框,并且在构建正确的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);
    });

});
有关更多信息:

有关更多信息:

目前,第二个元素仅在第一个元素之后更改 一个是

在这种情况下,您可以将category的哈希值附加到region

目前,第二个元素仅在第一个元素之后更改 一个是

在这种情况下,您可以将category的哈希值附加到region


是的。你试过什么吗?如果有的话,给我们看看。$'搜索区域,搜索类别。在'change'上,函数{…dostuff…;};嘿,我不知道如何使用这个代码,这就是问题的原因@cale_-bYes,是的。你试过什么吗?如果有的话,给我们看看。$'搜索区域,搜索类别。在'change'上,函数{…dostuff…;};嘿,我不知道如何使用这段代码,这就是问题@cale_b的原因。对我来说,这似乎是最干净的解决方案,而这段代码可能会回答这个问题,提供关于为什么和/或这段代码回答这个问题提高其长期价值的额外上下文。我不同意。我基本上重新安排了问题中的代码。我不认为在answer.agreed@Iwrestledabearonce中为两个事件处理程序添加使用相同的函数会有任何帮助。当OP显然没有使用ES6时,在ES6中看到答案而没有解释/免责声明,这已成为我最恼火的事。对于那些不熟悉ES6的人来说,这看起来像希腊语。此外,仅代码的答案没有那么有用。如果您能添加一些评论/解释,那就太好了。如果他们不喜欢一些指导,OP就不会在这里。这似乎是对我来说最干净的解决方案,而这段代码可能会回答这个问题,提供关于为什么和/或这段代码回答这个问题如何提高其长期价值的附加上下文。我不同意。我基本上重新安排了问题中的代码。我不认为在answer.agreed@Iwrestledabearonce中为两个事件处理程序添加使用相同的函数会有任何帮助。当OP显然没有使用ES6时,在ES6中看到答案而没有解释/免责声明,这已成为我最恼火的事。对于那些不熟悉ES6的人来说,这看起来像希腊语。此外,仅代码的答案没有那么有用。如果您能添加一些评论/解释,那就太好了。如果OP不喜欢一些指导,他们不会在这里。虽然此代码可以回答问题,但提供有关此代码为什么和/或如何回答问题的附加上下文可以提高其长期价值。虽然此代码可以回答问题,提供关于此代码为什么和/或如何回答此问题的附加上下文可提高其长期价值。
$(function() {

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

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

});
$(function(){

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

         ...Your logic

    });

});
$('#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);
});