2015-01-25 2 views
1

Я следующий код, который добавляется несколько раз к моей странице:добавляющих несколько раз

<li> 
    <div class="view"> 
     <i class="up"></i> 
     <div class="score"><p>0</p></div> 
    </div> 
</li> 

Я хочу, чтобы изменить счет от 0 до 1, когда «до» щелчка только мнение, что содержит «вверх» я нажал.

Поскольку это литерой ДИВ, я не могу использовать $('.up').click(...

Однако, если я использую:

$(document).on('click', '.up', function(){ 
    $('.score').html("<p>1</p>"); 
}); 

Тогда что изменяет оценку всех моих взглядов, а не только тот, который Я нажал.

Обычно я использовал $(this).html() .... но так как мне нужен $(document).on(), тогда это не сработает.

Надеюсь, что это имеет смысл, спасибо!

ответ

2

Вам необходимо использовать this, который ссылается на элемент, который вызывается обработчиком событий. Существуют различные способы, чтобы пересекающие элементу, как .next()

$(document).on('click', '.up', function(){ 
    $(this).next('.score').find('p').html("1"); 
}); 

ИЛИ

$(document).on('click', '.up', function(){ 
    $(this).closest('.view').find('.score p').html("1"); 
}); 
+2

Спасибо! Вторая работала отлично. – Nick

+0

@ Ник, если это сработает для вас, вы должны наградить Satpal правильным ответом. – r3wt

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