Напомним функцию в себе «если заявление»

0

Я работаю над некоторыми упражнениями с JQuery, что позволяет мне изменять порядок элементов. Пример, который я объясняю здесь, основан на количестве внутри некоторых тегов <li> таких как:

<ul>
  <li>4</li>
  <li>5</li>
  .
  .
</ul> 

Здесь я хочу изменить порядок, и я думаю о некоторой логике с этой функцией, поскольку каждый элемент li удаляет ее и помещает ее внизу.

$('li').each(function(){
    $(this).parent().append(this);
    reorder ($(this));
})

Затем эта другая функция оценивает значение предыдущего элемента var prev и, если prev ниже, поместите элемент выше этого.

function reorder(p) {
    var val = parseInt(p.text()),
        prev = parseInt(p.prev().text());
    if (val > prev) {
        p.prev().before(p);
    } 
}

Теперь вопрос в том, нужен ли мне, если утверждение верно, переоценивает значения с новым элементом prev для рассмотрения новой позиции. Вот так:

 if (val > prev) {
    p.prev().before(p);
    // And Run again the function to compare with the new prev element
 }   

Может ли кто-нибудь показать мне способ сделать это?

Вот пример скрипта


Pd: Теперь у меня есть другие варианты, такие как This, чтобы получить переупорядочение, но в этом примере больше говорится об отзыве функции.

Теги:
function

1 ответ

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

Просто назовите его снова (это называется рекурсия):

if (val > prev) {
    p.prev().before(p);
    reorder (p);
} 

демонстрация

  • 0
    Проверьте также google.com/#q=recursion
  • 0
    Спасибо, я читал об этом, но не знаю, как сделать звонок.

Ещё вопросы

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