1

cmsのページ順序を変更する簡単なスクリプトがあります。これは、jQueryを使用したテーブル行の並べ替えに基づいています。ここで問題となるのは、ハイライトクラスを行全体から遅らせて削除したいということです。delay()を無視し、すぐに削除します。

行にカーソルを合わせると、cell_rolloverクラスが追加されるという考え方です。上/下矢印をクリックすると、クラスはその行に残り、行が移動したことを示します。したがって、約200ミリ秒後、クラスが削除されます。そうではありません。

矢印のコード:

$(".listtable_up, .listtable_down").click(function() {
    var row = $(this).parents("tr:first");
    if ($(this).is(".listtable_up")) {
        row.insertBefore(row.prev());
    } else {
        row.insertAfter(row.next());
    }
    row.delay("200").removeClass('cell_rollover');
});

注:cell_roverクラスは、jQueryスクリプトを使用して行に追加されています。

$(".listtable tbody td").hover(function () {
    $(this).closest('tr').addClass('cell_rollover');
}, function () {
    $(this).closest('tr').removeClass('cell_rollover');
});

なぜこれが発生し、どのように修正するのですか?

私の一般的なアイデアの編集 ソリューションは、jqueryエフェクトのハイライトの形式です。http://jsfiddle.net/sZdre/1/ しかし、それでも、遅延が正常に機能しない理由を理解しようとしています。

4

4 に答える 4

1

遅延は肉眼で目立たないほどほとんどありません試してみてください

.delay(2000)

2000 = 2 seconds

duration: An integer indicating the number of milliseconds to delay execution of
          the next item in the queue.

jquery delay

アップデート

$(".listtable_up, .listtable_down").click(function() {
    var row = $(this).parents("tr:first");
    if ($(this).is(".listtable_up")) {
        row.insertBefore(row.prev()).delay(200).removeClass('cell_rollover');
    } else {
        row.insertAfter(row.next()).delay(200).removeClass('cell_rollover');
    }        
});
于 2011-07-23T11:56:57.487 に答える
0

この投稿が何か他のものを探しているのを見つけたので、これは非常に遅いです。

まだこれに取り組んでいて問題がある場合は、キューを調べる必要があります。removeClassはキューの一部ではないため、遅延を機能させるためにキューに追加する必要があります。そうしないと、特定の時間を待たずにクラスが削除されます。

$(document.body).click(function () {
  $("div").show("slow");
  $("div").animate({left:'+=200'},2000);
  $("div").queue(function () {
    $(this).addClass("newcolor");
    $(this).dequeue();
  });
  $("div").animate({left:'-=200'},500);
  $("div").queue(function () {
    $(this).removeClass("newcolor");
    $(this).dequeue();
  });
  $("div").slideUp();
});

この例は私にとって最も理にかなっています。私は現在同様の問題に取り組んでおり、数分前にこのような問題をすでに解決しているので、それがあなたの助けになることを願っています:)

于 2011-09-26T17:22:20.290 に答える
0

したがって、並べ替えられたばかりの行を強調表示するという元のアイデアは解決されました: http://jsfiddle.net/sZdre/1/

遅延バグはまだ解明されていません..

于 2011-07-26T14:57:15.183 に答える