Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Разварачивание строк в таблице на jQyery (https://javascript.ru/forum/jquery/9079-razvarachivanie-strok-v-tablice-na-jqyery.html)

Suharik 30.04.2010 16:16

А что мне сделать чтобы вторая ТР была изначально открыта, а при наведени на другую строку она закрывалась, и новая открывалась?

e1f 30.04.2010 16:19

$('tr:eq(1)').triggerHandler('mouseenter')


Подходит?

UPD Почти подходит, но нужно разнести отдельно бинды для mouseenter/mouseleave и заменить toggle на show?hide непосредственно

Suharik 30.04.2010 16:43

Ну почти получилось, Не понял как разнести бинды

Nekromancer 30.04.2010 17:03

$(...).bind('mouseenter', function(){
$(...).show();
}).bind('mouseleave', function(){
$(...).hide();
});


примерно так, селекторы и всё остальное сами подставите.

e1f 30.04.2010 17:07

$('#report tr.odd').bind('mouseenter mouseleave', function(e) {
    var self = $(this),
        next = self.next();

    if (next[0] === $(e.relatedTarget).closest('tr')[0]) {
        return;
    }

    if (e.type == 'mouseenter') {
        next.show();
    } else {
        $('#report tr:not(.odd, :first-child)').hide();
    }

    self.find('.arrownext').toggleClass('up');
}).eq(0).triggerHandler('mouseenter');

$('#report tr:not(.odd, :first-child)').bind('mouseleave', function(e) {
    var self = $(this),
        prev = self.prev();

    if (prev[0] === $(e.relatedTarget).closest('tr')[0]) {
        return;
    }

    self.hide();
    prev.find('.arrownext').toggleClass('up');
});

Suharik 30.04.2010 17:22

почти заработало)) только изначально все трки открываются сразу, а потом при наведении закрываются ))

e1f 30.04.2010 17:26

Suharik, всмысле? Тот код, что в посте выше, так себя ведет?

Suharik 30.04.2010 17:36

01 $('#report tr.odd').bind('mouseenter mouseleave', function(e) {
02 var self = $(this),
03 next = self.next();
04
05 if (next[0] === $(e.relatedTarget).closest('tr')[0]) {
06 return;
07 }
08
09 if (e.type == 'mouseenter') {
10 next.show();
11 } else {
12 $('#report tr:not(.odd, :first-child)').hide();
13 }
14
15 self.find('.arrownext').toggleClass('up');
16 }).eq(0).triggerHandler('mouseenter');
17
18 $('#report tr:not(.odd, :first-child)').bind('mouseleave', function(e) {
19 var self = $(this),
20 prev = self.prev();
21
22 if (prev[0] === $(e.relatedTarget).closest('tr')[0]) {
23 return;
24 }
25
26 self.hide();
27 prev.find('.arrownext').toggleClass('up');
28 });

Этот код ведет себя так (http://www.locmankvartir.ru/search_obj)

e1f 30.04.2010 17:44

Цитата:

Сообщение от e1f (Сообщение 53527)
О юный падаван!
$("#report tr:odd").addClass("odd"); 
            $("#report tr:not(.odd)").hide(); 
            $("#report tr:first-child").show();

Зачем убрал ты код этот важный? И обертку $(document).ready ты тоже снес, из недомыслия али по умыслу злому?

Suharik, Вы головой думать пробовали?
Вставьте в нужное место hide.

Suharik 30.04.2010 18:04

Так и не понял куда хид девать. Ладно пойду домой, дома буду пробовать. А Вы специально недоделываете код чтобы дать мне возможность помучится? ))


Часовой пояс GMT +3, время: 21:00.