Javascript 在选择更改JQ时调用不同的函数
大家好,我有3个Jq函数,我呼吁选择更改,但我认为有比这更有效的方法,你们有什么建议吗 jqueryJavascript 在选择更改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") - $(
$(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)
除此之外,可能没有更好的编写方法。