jQuery .text () проблема

-3

У меня есть код jQuery:

$('.team-leader-id').delegate('button', 'click', function() {
    var parent_object = $(this);
    var admin_id = $(this).parents('.team_data').find('.leader-id').val();
    var team_id = $(this).parents('.team_data').find('.team-hidden-id').val();
    $(this).parents('.team_data').find('.team-leader-mod-button').attr('disabled', 'disabled');
    $(this).parents('.team_data').find('.team-leader-modify').html('Mégse');
    $(this).parents('.team_data').find('.ajax-json-response').fadeOut(1).html('');
    $(this).parents('.team_data').find('.ajax-json-loading').html('<img src="images/progress-dots.gif" />').fadeIn('slow');

    $.ajax({
        type: 'POST',
        url: 'json.php',
        dataType: 'json',
        cache: false,
        timeout: 20000,
        data: { a: 'change_team_admin', admin_id: admin_id, team_id: team_id },
        success: function(data) {
            $(parent_object).parents('.team_data').find('.ajax-json-loading').fadeOut(1).html('');
            $(parent_object).parents('.team_data').find('.ajax-json-response').html(data.message).fadeIn(400).delay(2000).slideUp(400);
            if (!data.error) {
                $(parent_object).parents('.team_data').find('.team-leader-id').html('<a href="http://lanseries.hu/index.php?oldal=profile&p_id='+admin_id+'" target="_blank">'+admin_id+'</a>');
                PROBLEM -->$(parent_object).parents('.team_data').find('.team-leader-modify').text('OKÉ');<--
            } else {
                $(parent_object).parents('.team_data').find('.team-leader-mod-button').removeAttr('disabled');
                $(parent_object).parents('.team_data').find('.team-leader-modify').html('<a href="javascript:void(0)">Mégse</a>');
            }
        },
        error: function(jqXHR, textStatus, errorThrown) {
            $(parent_object).parents('.team_data').find('.ajax-json-loading').fadeOut(1).html('');
            //$(parent_object).parents('.team_data').find('#ajax-json-response').html('Probléma történt! Kérlek próbáld újra később! (HTTP Error: '+errorThrown+' | Error Message: '+textStatus+')').fadeIn('slow');
            $(parent_object).parents('.team_data').find('#ajax-json-response').html('Probléma történt! Kérlek próbáld újra később, és ellenőrizd az internetkapcsolatod!').fadeIn('slow');
        }
    });
});

Все работает хорошо, все в порядке, но один ряд не работает! Вы можете найти его в коде.

PROBLEM -->$(parent_object).parents('.team_data').find('.team-leader-modify').text('OKÉ');<--

HTML: (Есть несколько тысяч этой части кода, поэтому я не могу использовать id везде.

<div class="dnone team_data" id="team_<?php echo $allnum; ?>" style="padding: 10px; margin: 2px 0 2px 0; border: 1px solid <?php echo $site_color; ?>;">
<div class="ajax-json-loading"></div>
<div class="ajax-json-response"></div>
<table cellspacing="5">
    <tr>
        <td valign="top" style="width: 100px;">
            <b>Csapat vezető:</b>
        </td>
        <td class="team-leader-area">
            <input type="hidden" class="team-leader-hidden-id" value="<?php echo $value['leader']; ?>" />
            <input type="hidden" class="team-hidden-id" value="<?php echo $value['id']; ?>" />
            <div class="team-leader-id"><a href="http://lanseries.hu/index.php?oldal=profile&p_id=<?php echo $value['leader']; ?>" target="_blank"><?php echo $value['leader']; ?></a></div>
            <div class="team-leader-modify"><a href="javascript:void(0)">Módosít</a></div>
        </td>
    </tr>
    <tr>
        <td valign="top" style="width: 100px;">
            <b>Befizető címe:</b>
        </td>
        <td>
            <?php echo $value['p_address']; ?>
        </td>
    </tr>
</table>

Не могли бы вы рассказать мне, почему?

Заранее спасибо!

  • 4
    Отладить это. Действительно ли операторам jQuery удается найти элемент, который соответствует? Вы получаете какие-либо ошибки?
  • 2
    Не могли бы вы найти более описательный заголовок для вашего вопроса?
Показать ещё 10 комментариев
Теги:

1 ответ

1
Лучший ответ

Сломай. Я бы поставил следующее выше проблемную строку и проверил консоль в Chrome, что записи существуют:

console.dir($(parent_object).parents('.team_data'));
console.dir($(parent_object).parents('.team_data').find('.team-leader-modify'));
$(parent_object).parents('.team_data').find('.team-leader-modify').text('OKÉ');
console.dir($(parent_object).parents('.team_data').find('.team-leader-modify').text());

Кроме того, я бы не сделал так много вызовов $(parent_object).parents('.team_data'). Это несколько дорогостоящая операция.

Вместо этого, в начале функции ответа делают что-то вроде:

var $teamData = $(parent_object).parents('.team_data');

Затем укажите $ teamData для оставшихся вызовов jQuery.

  • 1
    Консолс показывает: jQuery.fn.jQuery.init [0] javascripts.js: 206 jQuery.fn.jQuery.init [0]
  • 0
    Вы должны быть в состоянии нажать на стрелку влево рядом с каждым элементом и развернуть. В идеале, когда вы нажмете первый, он покажет вам один элемент с классом "team_data". Второй должен показать вам один элемент с «team-leader-modify»
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню