Javascript 在选择更改JQ时调用不同的函数

Javascript 在选择更改JQ时调用不同的函数,javascript,jquery,Javascript,Jquery,大家好,我有3个Jq函数,我呼吁选择更改,但我认为有比这更有效的方法,你们有什么建议吗 jquery $(document).ready(function(){ var divList = $(".listWrapper li"); function sortPriceHighLow() { var result = divList.sort(function(a, b) { return $(b).data("position") - $(

大家好,我有3个Jq函数,我呼吁选择更改,但我认为有比这更有效的方法,你们有什么建议吗

jquery

$(document).ready(function(){
var divList = $(".listWrapper li");

function sortPriceHighLow() {
  var result = divList.sort(function(a, b) {
    return $(b).data("position") - $(a).data("position")
  });
  $(".listWrapper").html(result); 
}

function sortPriceLowHigh() {
  var result = divList.sort(function(a, b) {
    return $(a).data("position") - $(b).data("position")
  });
  $(".listWrapper").html(result); 
}

function random() {
  var length = $('.listWrapper li').length 
  $('.listWrapper li').each(function() {
    j = Math.floor(Math.random() * length); 
    $(this).before($(".listWrapper li:eq(" + j + ")")); 
  })
}   
    $('#priceChanger').on('change', function() {
      if ( $('#priceChanger').val() == 'sortPriceHighLow' ) sortPriceHighLow();
      else if ( $('#priceChanger').val() == 'sortPriceLowHigh' ) sortPriceLowHigh();
      else if ( $('#priceChanger').val() == 'random' ) random();
    });
});
html


1.
2.
3.

对于
#priceChanger
,您可以只使用一个
更改
事件处理程序

根据该值,确定要使用的
.sort()
回调

$(文档).ready(函数(){
$('#priceChanger')。在('change',function()上{
让sortCallback;
//根据$(此)值确定要使用的排序回调
开关($(this.val()){
案例“sortPriceHighLow”:
sortCallback=(a,b)=>$(b).数据(“位置”)-$(a).数据(“位置”)
打破
案例“sortPriceLowHigh”:
sortCallback=(a,b)=>$(a).数据(“位置”)-$(b).数据(“位置”)
打破
案例“随机”:
sortCallback=(a,b)=>$(a).data(“position”)-Math.random()*$('.listWrapper li').length
打破
违约:
sortCallback=()=>console.log(“选择值不正确!列表未排序。”)
}
//应用所选的“排序回调”
$(“.listWrapper”).html($(.listWrapper li”).sort(sortCallback))
});
});

从高到低
从低到高
随机的
错误的选择
    1.00$ 2.00$ 3.00$ 4.00$ 5.00$ 6.00$ 7.00$ 8.00$ 9.00$ 10.00$
您可以使用
开关(this.value)
除此之外,可能没有更好的编写方法。