目前,第二个元素只有在第一个元素改变后才会改变。
如果两个元素都是下拉框的,并且在构造正确的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的hash值附加到region

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

关于javascript - 如何为两个元素设置一个事件处理程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48623369/

10-13 03:22