更改按钮的功能

时间:2013-08-30 22:43:34

标签: jquery button jquery-plugins

我正在尝试将两个按钮合并为一个名为jsort的jquery插件。单击以升序排序,再次单击以降序排序。我无法弄清楚如何应用其他解决方案,因为我是一个新手。

提前谢谢! 伊恩

这是代码(现在有两个不同的按钮):

http://jsfiddle.net/Lut37/22/

  //Sort Ascending by year
    $("#asc_btn_year").click(function () {
        $("#demo").jSort({
            sort_by: 'p.txt span',
            item: 'div',
            order: 'asc'
        });
    });

    //Sort Descending by year
    $("#desc_btn_year").click(function () {
        $("#demo").jSort({
            sort_by: 'p.txt span',
            item: 'div',
            order: 'desc'
        });
    });

2 个答案:

答案 0 :(得分:1)

使用变量来跟踪顺序,并每次都将其翻转。

var order = 'asc';

$("#btn_year").click(function () {
    order = (order == 'asc') ? 'desc' : 'asc'; // Toggle order
    $("#demo").jSort({
        sort_by: 'p.txt span',
        item: 'div',
        order: order
    });
});

如果你有这样的多个按钮,你可以使用$(this).data('order')而不是全局变量。

$("#btn_year").click(function () {
    order = $(this).data('order') == 'asc' ? 'desc' : 'asc';
    $(this).data('order', order);
    $("#demo").jSort({
        sort_by: 'p.txt span',
        item: 'div',
        order: order
    });
}).data('order', 'asc');

答案 1 :(得分:0)

在范围内只有boolean,如果是true,请执行一项,false,执行另一项操作,并确保每次都更改boolean值时间。

例如,

var myBoolean = true;

$("#btn_year").click(function () {
    if(myBoolean){
        myBoolean = false;
        $("#demo").jSort({
            sort_by: 'p.txt span',
            item: 'div',
            order: 'asc'
        });
    }else {
        myBoolean = true;
        $("#demo").jSort({
            sort_by: 'p.txt span',
            item: 'div',
            order: 'desc'
        });
    }
});