4

私のプロジェクトには$.post、検索クエリの結果を取得するために使用する検索フィールドがあります。私の問題: ユーザーが検索ボタンをクリックすると正しく動作しますが、ユーザーが検索ボタンをもう一度クリックしてから、私の thead 列をクリックすると、jquery sorter がテーブルに表示されている前の検索と重複します。

ソーター関数が重複しないようにするにはどうすればよいですか?

これは、検索ボタンのクリック用の Jquery コードです。

     $(function () {
            $('#submitfloat').click(function () {
                $('#loading').show();
                setTimeout(function () { $("#loading").hide(); }, 800);
                var SubjectTypes = $('#SubjectTypes').val();
                var Teams = $('#Teams').val();
                var Companies = $('#Companies').val();
                var Consultants = $('#Consultants').val();
                var PlannedDates = $('#PlannedDates').val();
                var CompletedDates = $('#CompletedDates').val();
                var DateTypes = $('#DateTypes').val();
                var data = {
                    Subjectypes: SubjectTypes,
                    Companies: Companies,
                    Teams: Teams,
                    Consultants: Consultants,
                    PlannedDates: PlannedDates,
                    CompletedDates: CompletedDates,
                    DateTypes: DateTypes
                };

                var fromDate = $('#PlannedDates').val();
                var endDate = $('#CompletedDates').val();
                if (Date.parse(fromDate) > Date.parse(endDate)) {
                    jAlert("End date must be later than start date", "Warning");
                    return false;
                } else {
                    $('#GoalcardSearchResult tbody').hide();
                    setTimeout(function () { $("#GoalcardSearchResult tbody").show(); }, 800);
                    $.post('@Url.Action("Search", "SearchNKI")', data, function (result) {

                        $("#GoalcardSearchResult tbody").empty();


                        result.forEach(function (goalcard) {

                            $("#GoalcardSearchResult tbody").append(
                                $('<tr/>', {
                                    click: function () {
                                        id = goalcard.Id;
                                        var url = '@Url.Action("AnswerForm", "AnswerNKI", new { id = "__id__"})';
                                        window.location.href = url.replace('__id__', id);


                                    },

                                    html: "<td>" + goalcard.Name + "</td><td>" + goalcard.Customer + "</td><td>" + goalcard.PlannedDate + "</td><td>" + goalcard.CompletedDate + "</td>"
                                }));
                        });
                        $("#GoalcardSearchResult").tablesorter();
                    });
                    return false; 
                }
            });
        });  

どうぞよろしくお願いいたします。

4

1 に答える 1

5

ユーザーがソートボタンをクリックする前に、 tablesorter はすでに初期化されていると思います。その場合は、次のコードを置き換えます。

$("#GoalcardSearchResult").tablesorter();

これとともに:

$("#GoalcardSearchResult").trigger('update');
于 2012-04-20T19:16:34.060 に答える