2012-06-28 1 views
-2

У меня проблема с slideUp. Только один элемент (первый) скользит вверх. Пожалуйста, дайте мне руку. Благодарю. Ниже приведен код:jQuery slideUp работает только для первого элемента

$(document).ready(function() { 
    $('#load').hide(); 
}); 
$(function() { 
    $("#del").click(function() { 
     $('#load').fadeIn(); 
     $(this).parent().slideUp('slow', function() {$(this).remove();}); 
     $('#load').fadeOut(); 
    }); 
}); 

А вот разметка:

<div id="container"> 
    <table> 
     <div id="load" align="center"><img src="images/loading.gif" width="28" height="28"  align="absmiddle"/> loading...</div> 
     <tr><td>  
      <span>Ashley Ford</span><br/></td> 
      <td><a href="#" id="del">x</a> 
     </td></tr> 
     <tr><td> 
      <span>Ashley Ford</span><br/></td> 
      <td><a href="#" id="del">x</a> 
     </td></tr> 
     <tr><td> 
      <span>Ashley Ford</span><br/></td> 
      <td><a href="#" id="del">x</a> 
     </td></tr> 
    </table> 
</div>  
+3

Вы не можете иметь дубликат ' id' в том же документе. Измените его на имя класса. –

+0

Разница между id и классом - это самый простой скрипт java. Пожалуйста, внимательно прочитайте документы. – coolguy

ответ

1

Вы не можете иметь такой же id более одного элемента ..для, что вы должны использовать class 1.Change ваш id="del" к class="del" 2.Try эта функция

$(function() { 
     $(".del").click(function() { 
     $('#load').fadeIn(); 
     $(this).parent().slideUp('slow', function() {$(this).remove();}); 
    $('#load').fadeOut(); 

    }); 
    }); 
+0

Отлично, что мне очень помогает. Но теперь я хотел бы сдвинуть всю строку таблицы. Но если я выберу $ («tr»). вся таблица slidesUp. –

+0

Попробуйте $ (this) .parent(). Parent(). SlideUp ('slow', function() {$ (this) .remove();}); – coolguy

+0

Спасибо, это помогло. Но вместо slideUp я использую FadeOut, потому что это была лучшая анимация для таблицы. –

2

Из документов JQuery для ID selector (курсив добавлен):

Если более чем один элемент был назначил тот же идентификатор, запросы, которые используют этот идентификатор, будут выбирать только первый элемент в DOM.

Вы можете изменить #del элементы, чтобы использовать имя класса (или некоторые другие общие характеристики) вместо:

<a href="#" class="del">x</a> 

И измените селектор соответственно:

$(".del").click(function() { 
    //Do stuff 
}); 

As Примечание: у вас есть две функции, которые будут выполняться в DOM. Вы можете объединить их в один. Просто переместите $('#load').hide(); в другой обработчик событий DOM.

И это недействительный HTML, чтобы иметь div как ребенок элемента table.

+0

Как вы можете видеть, я меняю исходный почтовый индекс, я хочу, чтобы весь список SlideUp (). Но у меня проблема, выбрав правильный тег в таблице. Спасибо за помощь. –

0

Как указывалось, каждый элемент id должен быть уникальным. Если вам нужно сгруппировать кучу элементов, для этого нужен элемент class.