1

私がやろうとしていることはいくつかあります。しかし、何が起こっているのかを示すためにフィドルを作成しました-> http://jsfiddle.net/yohn/tDcgD/そして、人々が知っているように、いくつかのコードはhttps://github.com/stevedev/jquery.table_select.jsから来ました。

テーブル内のセルをクリックしてドラッグすると、セルが強調表示され、それぞれのグリッド ビューに保持されますが、同じマウスダウン イベント内に戻るたびに、最近選択したセルの選択を解除したいので、新しいテーブルを作成するときに、単語内でどのように機能するかを探しています。

修正が次のループ内で処理されることはわかっていますが、正しく取得できません..

for (y = start_y; y <= end_y; y++){
    for (x = start_x; x <= end_x; x++){
        table.find('tr:eq('+y+')').find('td:eq('+x+')').each(function (i,o) {
            var th = $(this)
            if(th.hasClass('selectable')){
                if(th.hasClass('recent')){} else {
                    th.toggleClass("selected").addClass('recent')
                }
            }
        });
    }
}

どんな助けでも大歓迎です。

4

1 に答える 1

2

私は信じています、これがあなたが求めているものです。これが更新されたフィドルです

を見ると.delegate('td.selectable', 'mouseover', function ()、次のコードが追加されています。

else
{                             
    $('.recent').removeClass('recent').removeClass('selected')
}

基本的に、マウスがクリック (mousedown) されてホバーされると (つまり、'recent' クラスが存在する場合)、最初に要素から 'recent' クラスと 'selected' クラスがクリアされます。ロジックの残りの部分は、計算されたグリッドのレンダリング/塗りつぶしを処理します。

これはあなたの質問に対処する必要があります。ただし、必要に応じて他のことを検討する必要がある場合があります。

于 2013-09-18T06:46:53.810 に答える