Как выбрать этот элемент контейнера в jQuery - PullRequest
3 голосов
/ 18 августа 2011

У меня возникли проблемы с выбором выбранного в настоящий момент элемента контейнера.

Мой HTML

<div class="cparent">
foo1
<a href="javascript:void(0);" class="delete">Delete</a>
</div>

<div class="cparent">
foo2
<a href="javascript:void(0);" class="delete">Delete</a>
</div>

Я имею в виду, что при нажатии на ссылку удаления соответствующий контейнер должен исчезнуть.Как я могу это сделать?

Что я пробовал!

$(".cparent",this).html('Deleting...').delay(1000).fadeOut();// not working

Мой скрипт

$(".delete").live("click",function(){
 var cur = $(".delete").index(this);
 $(".cparent").eq(cur).html('Deleting...').delay(1000).fadeOut();
 });

Над одним тоже не работает.Для уточнения взгляните на этот пример .

Ответы [ 5 ]

6 голосов
/ 18 августа 2011

Используйте метод parent [ API Ref ] :

$(this).parent().html('Deleting...').delay(1000).fadeOut();

Передача this в качестве второго параметра функции jQuery не найдет элементы выше this. Кроме того, вы можете использовать метод closest [ API Ref ] :

$(this).closest('.cparent').html('Deleting...').delay(1000).fadeOut();
1 голос
/ 18 августа 2011

используйте closest, чтобы выбрать ближайшего родителя

$(".delete").live("click",function(){
 var cur = $(this);
 cur.closest("div.cparent").html('Deleting...').delay(1000).fadeOut();
 });

вот скрипка http://jsfiddle.net/szVKD/10/

jquery closest

0 голосов
/ 18 августа 2011

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

Попробуйте использовать это как ваш обработчик, он более точный и легче для чтения:

$(this).parent(".cparent").html('Deleting...').delay(1000).fadeOut();

0 голосов
/ 18 августа 2011

Попробуйте использовать parent () :

$(this).parent().html('Deleting...').delay(1000).fadeOut();

Вы можете увидеть его здесь:

http://jsfiddle.net/gchoken/YFMZW/1/

0 голосов
/ 18 августа 2011
$('div.cparent').click (function (e)
{
    if ($(e.target).attr ('class') == 'delete')
    {
        $(this).html('Deleting...').delay(1000).fadeOut();
    }
}
);

скрипка здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...