Jqgrid - Как сохранить скрытый стиль при использовании контекстного меню для строки - PullRequest
3 голосов
/ 10 января 2012

В jqgrid при наведении курсора мыши на любую строку она выделяется.Но когда я использую контекстное enu, выделенный стиль для этой строки исчезает.

Теперь пользователи не знают, для какой строки было открыто контекстное меню.Я хотел бы знать, сможем ли мы сохранить стиль навеса.Я знаю, что мы можем сделать setSelect на сетке для выбранной строки, но я не хочу выбирать строку.Заранее спасибо ...

1 Ответ

1 голос
/ 13 января 2012

Я предлагаю использовать mouseover и mouseleave (или событие jQuery.hover , которое совпадает), чтобы установить класс ui-state-hover для строка, в которой будет открыто контекстное меню. В способе вы можете исправить поведение из стандартного

enter image description here

к следующему:

enter image description here

Демо демонстрирует мое предложение в прямом эфире. Соответствующий код я включил ниже:

$grid.contextMenu('myMenu1', {
    bindings: {
        edit: function (trigger, currentTarget) {
            $(trigger).jqGrid('editRow',
                $(currentTarget).closest("tr.jqgrow").attr('id'),
                true);
        },
        del: function (trigger, currentTarget) {
            $(trigger).jqGrid('delGridRow',
                $(currentTarget).closest("tr.jqgrow").attr('id'));
        }
    },
    menuStyle: {
        backgroundColor: '#fcfdfd',
        border: '1px solid #a6c9e2',
        maxWidth: '600px',
        width: '100%'
    },
    itemHoverStyle: {
        border: '1px solid #79b7e7',
        color: '#1d5987',
        backgroundColor: '#d0e5f5'
    },
    onShowMenu: function (e, $menu) {
        var $row = $(e.target).closest('tr.jqgrow');
        $menu.mouseover(function () {
            try {
                $row.siblings().removeClass('ui-state-hover');
            } catch (e) {}
            $row.addClass('ui-state-hover');
        }).mouseleave(function (e) {
            var $rowNew = $(e.target).closest('tr.jqgrow');
            if ($rowNew.attr('id') !== $row.attr('id')) {
                $row.removeClass('ui-state-hover');
            }
        });
        return $menu;
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...