1

部分ビューでは、このように Kendo Splitter 内で宣言された Kendo Grid があります。

@(Html.Kendo().Splitter()
  .Name("adminSplitter")
  .Orientation(SplitterOrientation.Horizontal)

  .Panes(p =>
             {
                 p.Add()
                    .HtmlAttributes(new
                                            {
                                                id = "adminLeftHandPane"
                                            })
                    .Resizable(false)
                    .Size("150px")
                    .Content(@<text>
                                @(Html.Kendo().Grid<AdministrativeTask>()
                                    .Name("grdAdminTasks")
                                    .ClientRowTemplate("<tr class=\"gridRow\"><td style=\"cursor:pointer\"><img src=\"#=ImageUrl#\" style=\"height: 16px; width: 16px;\" />&nbsp;#=Title#</td></tr>")

                                    .Columns(c => c.Bound(i => i.Action)
                                                   .Title("Administrative Tasks"))
                                    .Selectable(s => s.Mode(GridSelectionMode.Single))
                                    .DataSource(ds => ds.Ajax().Read("LoadAdministrativeTasks", "Admin").ServerOperation(false))
                                    .Events(e => e.Change("change"))
                                )
                            </text>);
                 p.Add()

                    .HtmlAttributes(new
                                            {
                                                id = "adminRightHandPane"
                                            })
                    .Content(@<text>
                                  <div id="adminRightHandPaneContent"></div>
                              </text>)
                                            ;
             }
  )

  )

この同じ部分ビューでは、私のスクリプトは次のようになります

<script>
function change() {
    var row = this.select();
    var item = this.dataItem(row);

    $.ajax({
        url: '/' + item.Controller + '/' + item.Action,
        contentType: 'application/html; charset=utf-8',
        type: 'GET',
        dataType: 'html',
        cache: false,
    })
                .success(function (result) {
                    // Display the section contents.
                    $('#adminRightHandPaneContent').html(result);
                })
                .error(function (xhr) {
                    $('#adminRightHandPaneContent').html("ERROR: <br><br>" + xhr.responseText);
                    //alert(xhr.responseText);
                });

}


$(document).ready(function () {
    alert($('.gridRow'));
    $(".gridRow").hover(

   function () {
       alert("hit");
       $(this).addClass("highlightRow");
   },
        function() {
            $(this).removeClass("highlightRow");
        }

 );
});

部分ビューが読み込まれると、Jquery が行を見つけたことを知らせる "[object Object]" というアラートが表示されます。ただし、問題の行にカーソルを合わせると、「ヒット」警告メッセージが表示されないため、この時点で続行方法がわかりません。

ユーザーが行の上にカーソルを置いたときに行を強調表示しようとしています。私は何を間違っていますか?

4

4 に答える 4

12

カーソルが表の行の上にあるときに行のスタイルを変更したいだけの場合は、CSS スタイルを次のように定義するだけです。

#grid tbody tr:hover {
    background: #ff0000;
}

グリッドの はgridどこですか。id

ここで実行されているかどうかを確認してくださいhttp://jsfiddle.net/OnaBai/uN2W5/

したがって、CSS クラス、ホバー関数ハンドラーなどを追加する必要さえありません...

于 2013-01-22T21:23:39.287 に答える
8

一般的な形式で:

.k-grid table tr:hover td {
background :rgb(107, 188, 242) !important;
cursor: pointer !important;
}
于 2014-08-27T10:53:26.603 に答える
1

2016 年第 1 四半期、剣道 ui の css にこの行があります

.k-grid tr:hover{background-image:url(textures/highlight.png);background-image:none,-webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,.45)),to(rgba(255,255,255,0)));background-image:none,-webkit-linear-gradient(top,rgba(255,255,255,.45) 0,rgba(255,255,255,0) 100%);background-image:none,linear-gradient(to bottom,rgba(255,255,255,.45) 0,rgba(255,255,255,0) 100%);background-color:#88c5e0}

そのため、そのままで動作するはずです

于 2016-02-12T18:02:07.310 に答える
0
.k-grid table tr.k-state-selected{background: red;color: black; }
于 2013-01-23T15:14:43.897 に答える