2013-03-06 2 views
0

У меня есть несколько таблиц, отображающих отображение содержимого, с одной кнопкой его ОК, но я хочу использовать кнопки для выполнения того же самого, но если я нажму на кнопку один, я хочу изменить класс для первого кнопка и вторая кнопка, также когда вы нажимаете на вторую кнопку для переключения элемента, я хочу изменить класс для обеих кнопок.Две кнопки с несколькими элементами переключения jQuery

$('.triggerNew,.triggerInfo').click(function() { 
    var Itemid = $('#Itemid').val(); 
    var text = $(this).text(); 
    var id = $(this).attr('id'); 
    var lijn = 'tr#' + 'lijn' + $(this).attr('id'); 
    var extra = 'tr#' + 'extra' + $(this).attr('id'); 
    var result = '#result' + $(this).attr('id'); 
    var triggerNew = $(".triggerNew"); 

    $('.triggerNew').text($(this).text() == '[-]' ? '[+]' : '[-]'); 
    $('.triggerInfo').text($(this).text() == 'infonew' ? 'info' : 'infonew'); 

    if(text == '[+]' || text == 'info') { 
    $("<tr id=\"extra" + id + "\"><td colspan=\"5\"><div id=\"result" + $(this).attr('id') + "\"><div class=\"block\" style=\"text-align:center;padding:10px 0 10px 0;\"><img src=\"img/ajax-loader.gif\" /></div></div></td></tr>").insertAfter(lijn); 

    $(extra).hide(); 
    $(extra).slideDown('slow'); 
    $(result).load(rooturl+'#' + id + '&Itemid=' + Itemid); 
    $(this).removeClass('yescondext').addClass('nocondtext'); 

    return false; 
    } else { 
    $(extra).slideUp('slow'); 
    $(result).remove(); 
    $(this).removeClass('nocondtext').addClass('yescondext'); 
    return false; 
    } 
}); 

Может ли один помочь мне, пожалуйста

весь код здесь

http://jsfiddle.net/QKyYS/8/

+0

Пожалуйста, разместите свой HTML-код тоже. – hjpotter92

+0

http://jsfiddle.net/QKyYS/8/ –

ответ

1

Я думаю, что this является то, что вы имеете в виду.

Как достичь этого:

$(this).closest('td').find(".triggerNew").text($(this).closest('td').find(".triggerNew").text() == '[-]' ? '[+]' : '[-]'); 
$(this).closest('td').find(".triggerInfo").text($(this).closest('td').find(".triggerInfo").text() == 'infonew' ? 'info' : 'infonew'); 

должны быть там, только после $(result).load(rooturl + '#' + id + '&Itemid=' + Itemid); вызова.

Кроме того, в блоке else

$(this).closest('td').find(".triggerNew").text($(this).closest('td').find(".triggerNew").text() == '[-]' ? '[+]' : '[-]'); 
$(this).closest('td').find(".triggerInfo").text($(this).closest('td').find(".triggerNew").text() != 'infonew' ? 'info' : 'infonew'); 

fiddle ссылка снова.

+0

, но я также линию после '$ (это) .removeClass ('nocondtext') addClass ('yescondext.');' и я хочу добавить этот класс для этих 2 элементов и удалить также –

+0

@ user2140670 Замените '$ (this)' на '$ (this) .closest ('td'). find (". triggerNew, .triggerInfo ")' – hjpotter92

+0

благодарит вас за работу отлично –

Смежные вопросы