2013-12-20 2 views
0

Есть ли общий способ указания элементов в jQuery. Например, используя $(this).find или следующую функцию.Есть ли общий способ указать элементы в jquery

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

В момент дублирования кнопки копируется.

См. Пример.

http://jsfiddle.net/X8AYd/12/

<a href="#" class="vote-btn">button</a> 
<p class="vote-number">+ 70,101</p> <a href="#" class="vote-btn">button</a> 
<p class="vote-number">+ 70,101</p> <a href="#" class="vote-btn">button</a> 
<p class="vote-number">+ 70,101</p> 


$(".vote-number").hide(); 
$(".vote-btn").click(function() { 
    $(".vote-number").finish().show().fadeOut(5000); 
}); 
+4

' " например с помощью $ (это) .find или следующей функции."' ... почему, черт возьми, вы не пробовали их и не видели, что appens !!! – musefan

+0

Спасибо за помощь. Я пытаюсь изменить html, но теперь он не работает. вы можете помочь http://jsfiddle.net/X8AYd/18/ – user2965875

+0

Почему вы ожидаете, что он будет работать, когда вы измените html? Вы даже понимаете, что делает «следующий», почему он работает в предоставленных ответах? – musefan

ответ

2

$(".vote-number").finish() будут направлены все элементы с классом vote-number. Вместо этого вы хотите настроить таргетинг только на элемент рядом с кнопкой. Итак, используйте $(this).next(".vote-number") специально для таргетинга.

JSFIDDLE DEMO

$(".vote-btn").click(function(){ 
    $(this).next(".vote-number").finish().show().fadeOut(5000); 
}); 
+0

Привет, спасибо за вашу помощь. Я пытаюсь изменить html, но теперь он не работает. вы можете помочь http://jsfiddle.net/X8AYd/18/ – user2965875

+0

@ user2965875 вы изменили порядок. Итак, вместо 'next()', используйте 'prev()'. http://jsfiddle.net/X8AYd/19/ – Krishna

1

Вы можете сделать с .next(), как с помощью .vote-btn будут нацелены только на первый occurrance одного и того же, так что лучше использовать $(this).next(".vote-number'), нацеленную на следующий <p> с классом vote-number

$(".vote-btn").click(function(){ 
    $(this).next(".vote-number").finish().show().fadeOut(5000); 
}); 

Fiddle Example

1

Попробуйте:

$(".vote-btn").click(function(){ 
    $(this).next('.vote-number').finish().show().fadeOut(5000); 
}); 

Working Fiddle

1
$(".vote-number").hide(); 

$(document).on("click", ".vote-btn", function (e) { 
    $(this).prev(".vote-number").show().fadeOut(5000); 
}); 

Working Fiddle

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