Как я могу сделать jQuery для включения других элементов в hover - PullRequest
0 голосов
/ 17 февраля 2011

У меня есть небольшая проблема, связанная с hover и jQuery:

Я создал таблицу из базы данных MySQL.Есть несколько определенных строк, которые отображают атрибуты: ни одной, чтобы не показывать их.Но если вы положите мышку на элемент выше невидимого, невидимый элемент должен стать видимым (возможно, существует более одного невидимого элемента, чем все невидимые элементы до следующего видимого элемента должны стать видимыми. Если вы получаетемыши от этих элементов, невидимые должны снова исчезнуть. Я сделал функцию, которая делает именно то, что я хочу, за исключением одной маленькой вещи. Я хотел бы отнести наведение не только к видимой строке, но и к невидимой, что означает, что если вы отведете указатель мыши от видимого элемента к бывшим невидимым элементам, они не должны исчезать, но они исчезают! Я пытался организовать tr с помощью span, но, похоже, в HTMLкак промежутки в таблицах, если они не находятся в тд. После этого я попытался решить проблему с указанием позиции мыши и привязать перемещение мыши ко всем элементам. Это также не работает (в следующем примере я пыталсясначала положение xy самого видимого элемента, еслия получаю эту работу, я буду расширять ее до прежних невидимых элементов.

$("#NH00").hover(
    function(){
        $('tr[name="hiddenNH00"]').show();},
    function(){
        $("*").one("mousemove", function(e) {
            var offset = $(this).offset();
            var xlt = offset.left;
            var ylt = offset.top;
            var xrb = offset.left + $(this).outerWidth(false);
            var yrb = offset.top + $(this).outerHeight(false);
            if(e.pageX < xlt || e.pageX > xrb || e.pageY < ylt || e.pageY > yrb){
                $('tr[name="hiddenNH00"]').hide();
            }
        })
    }
);

Ответы [ 2 ]

1 голос
/ 17 февраля 2011

Взгляните на плагин jExpand .
Единственная возможная проблема, которую я вижу, заключается в том, что, по-видимому, ожидается, что будет одна видимая строка и одна скрытая строка, а не кратныеописать.

Если это является проблемой, возможно, вы можете переработать разметку так, чтобы видимая строка была такой же, как сейчас, но скрытые находятся во вложенной таблице во второй строке.

Обязательно прочитайте комментарии.Очевидно, была проблема с IE8, которую кто-то исправил, и я не уверен, что она вернулась в настоящую документацию.

0 голосов
/ 17 февраля 2011

Почему бы не присоединить один и тот же обработчик событий к "невидимым" строкам?

$("#NH00, tr[name='hiddenNH00']").hover(
    function(){
        $('tr[name="hiddenNH00"]').show();
    },
    function(){
        $('tr[name="hiddenNH00"]').hide();
    }
);

DEMO

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...