Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery切换函数_Jquery_Sorting_Toggle - Fatal编程技术网

Jquery切换函数

Jquery切换函数,jquery,sorting,toggle,Jquery,Sorting,Toggle,我有一个使用Jquery对表格进行排序的代码。我使用切换功能交替单击,并在“上升”和“下降”排序之间切换。一旦单击标题的表格,它应该对其内容进行排序 但是,有一个bug: 我单击一次,它会排序,然后当我再次单击时,什么也不会发生。我需要再次单击(第二次)以执行第二个函数,然后再次排序 切换功能应该是单次点击,而不是双击,对吗 代码如下: firstRow.toggle(function() { $(this).find("th:first").removeClass("asce

我有一个使用Jquery对表格进行排序的代码。我使用切换功能交替单击,并在“上升”和“下降”排序之间切换。一旦单击标题的表格,它应该对其内容进行排序

但是,有一个bug:

我单击一次,它会排序,然后当我再次单击时,什么也不会发生。我需要再次单击(第二次)以执行第二个函数,然后再次排序

切换功能应该是单次点击,而不是双击,对吗

代码如下:

 firstRow.toggle(function() {
        $(this).find("th:first").removeClass("ascendFirst").addClass("descendFirst");
        $(this).find("th:not(first)").removeClass("ascend").addClass("descend");

        sorted = $.makeArray($("td:eq(0)", "tr")).sort().reverse();
        sorted2 = $.makeArray($("td:eq(1)", "tr")).sort().reverse();
        sorted3 = $.makeArray($("td:eq(2)", "tr")).sort().reverse();

        for (var i = 0; i < sorted.length; i++) {
            $("td", "tr:eq(" + (i + 1) + ")").remove();
            $("tr:eq(" + (i + 1) + ")").append($("<td></td>").text($(sorted[i]).text()));


            $("tr:eq(" + (i + 1) + ")").append($("<td></td>").text($(sorted2[i]).text()));


            $("tr:eq(" + (i + 1) + ")").append($("<td></td>").text($(sorted3[i]).text()));

        }
    }, function() {
        $(this).find("th:first").removeClass("descendFirst").addClass("ascendFirst");
        $(this).find("th:not(first)").removeClass("descend").addClass("ascend");

        sorted = $.makeArray($("td:eq(0)", "tr")).sort();
        sorted2 = $.makeArray($("td:eq(1)", "tr")).sort();
        sorted3 = $.makeArray($("td:eq(2)", "tr")).sort();

        for (var i = 0; i < sorted.length; i++) {
            $("td", "tr:eq(" + (i + 1) + ")").remove();
            $("tr:eq(" + (i + 1) + ")").append($("<td></td>").text($(sorted[i]).text()));


            $("tr:eq(" + (i + 1) + ")").append($("<td></td>").text($(sorted2[i]).text()));


            $("tr:eq(" + (i + 1) + ")").append($("<td></td>").text($(sorted3[i]).text()));

        }
    });
firstRow.toggle(函数(){
$(this).find(“th:first”).removeClass(“ascendFirst”).addClass(“descendFirst”);
$(this.find(“th:not(first)”).removeClass(“ascend”).addClass(“Descent”);
排序=$.makeArray($($(“td:eq(0)”,“tr”)).sort().reverse();
sorted2=$.makeArray($($(“td:eq(1)”,“tr”)).sort().reverse();
sorted3=$.makeArray($($(“td:eq(2)”,“tr”)).sort().reverse();
对于(变量i=0;i
在您的帖子中,如果您在第一次和第二次单击之间等待的时间更长,听起来事情会按照您的预期进行。如果你做得太早,双击功能可能会吃掉你的第二次点击。如果是这种情况,请将此处理程序绑定到单击和双击事件,然后将它们视为同一事件处理。

在您的帖子中,如果您在第一次和第二次单击之间等待的时间更长,事情会如您所愿。如果你做得太早,双击功能可能会吃掉你的第二次点击。如果是这种情况,请将此处理程序绑定到单击和双击事件,然后将它们视为同一事件。

切换代码看起来正常。当我遇到需要第二次单击才能触发事件的情况时,我已经对选择器应用了两次切换(在本例中为第一行)。或者存在多个jQuery对象

检查您是否没有应用它两次,或者将代码附加到简单的div以测试它是否独立于第一行选择器工作。例如:

 $("div.testclass").toggle(function() {
    // do this
    }
}, function() {
   // undo this
    }
});​

我们可能还需要查看您的HTML。

您的切换代码看起来正常。当我遇到需要第二次单击才能触发事件的情况时,我已经对选择器应用了两次切换(在本例中为第一行)。或者存在多个jQuery对象

检查您是否没有应用它两次,或者将代码附加到简单的div以测试它是否独立于第一行选择器工作。例如:

 $("div.testclass").toggle(function() {
    // do this
    }
}, function() {
   // undo this
    }
});​

我们可能也需要查看您的HTML。

为什么不使用tablesorter而不是滚动您自己的版本:因为,我需要学习按自己排序非常好,Oz。我已经厌倦了人们把我指向其他插件。没有人会在不询问别人的作品是如何工作的情况下通过使用他人的作品学到任何东西。这是一个逻辑错误,我不需要在这些函数之间切换来排序。我只需要调用sort()。每次都调用reverse(),那么为什么不使用tablesorter而不是滚动自己的版本:因为,我需要学会自己排序非常好,我已经厌倦了人们把我指向其他插件。没有人会在不询问别人的作品是如何工作的情况下通过使用别人的作品学到任何东西。这是一个逻辑错误,我不需要在这些函数之间切换到sort。我只需要每次调用sort().reverse(),好吗