С Новым годом! Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для STBOL
2 / 2 / 0
Регистрация: 02.03.2013
Сообщений: 86

Зацикливание .on()

19.03.2015, 16:53. Показов 526. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Есть меню в котором админ может менять местами пункты.
Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<ul class="nav nav-list">
    <li class="nav-header">Меню <i class="icon-pencil" style="cursor: pointer; margin-left: 10px;"
                                   title="Редактировать меню"></i><i class="icon-ban-circle" title="Отмена"
                                                                     style="cursor: pointer; margin-left: 10px;"
                                                                     onclick="edit_menu_off()"></i></li>
    <li><a href="/" id="id-1">Главная<i class="icon-arrow-left" style="margin-left: 5px;"
                                        onclick="get_parent(); return false"></i> <i class="icon-remove"
                                                                                     style="margin: 0 5px;"
                                                                                     onclick="edit_menu_remove(); return false"></i>
            <i class="icon-arrow-up" style="margin-right: 5px;" onclick="edit_menu_change(0); return false"></i> <i
                class="icon-arrow-down" style="margin-right: 5px;" onclick="edit_menu_change(1); return false"></i></a>
    </li>
    <li><a href="asdasd" id="id-15">sadasd<i class="icon-arrow-left" style="margin-left: 5px;"
                                             onclick="get_parent(); return false"></i> <i class="icon-remove"
                                                                                          style="margin: 0 5px;"
                                                                                          onclick="edit_menu_remove(); return false"></i>
            <i class="icon-arrow-up" style="margin-right: 5px;" onclick="edit_menu_change(0); return false"></i> <i
                class="icon-arrow-down" style="margin-right: 5px;" onclick="edit_menu_change(1); return false"></i></a>
    </li>
    <li><a href="asdasd" id="id-16">asdasd<i class="icon-arrow-left" style="margin-left: 5px;"
                                             onclick="get_parent(); return false"></i> <i class="icon-remove"
                                                                                          style="margin: 0 5px;"
                                                                                          onclick="edit_menu_remove(); return false"></i>
            <i class="icon-arrow-up" style="margin-right: 5px;" onclick="edit_menu_change(0); return false"></i> <i
                class="icon-arrow-down" style="margin-right: 5px;" onclick="edit_menu_change(1); return false"></i></a>
    </li>
    <li><a href="asdasd" id="id-17">asd<i class="icon-arrow-left" style="margin-left: 5px;"
                                          onclick="get_parent(); return false"></i> <i class="icon-remove"
                                                                                       style="margin: 0 5px;"
                                                                                       onclick="edit_menu_remove(); return false"></i>
            <i class="icon-arrow-up" style="margin-right: 5px;" onclick="edit_menu_change(0); return false"></i> <i
                class="icon-arrow-down" style="margin-right: 5px;" onclick="edit_menu_change(1); return false"></i></a>
    </li>
    <br><input type="text" class="input-small" id="link-name" placeholder="Введите имя"><input type="text"
                                                                                               class="input-small"
                                                                                               id="link"
                                                                                               placeholder="Введите ссылку"><input
        type="text" class="span5" id="parent" style="  margin-top: 10px; margin-right: 5px;"
        placeholder="Родитель"><input type="button" value="Добавить" class="btn btn-success" style="cursor: pointer;"
                                      onclick="edit_menu_check()">
</ul>


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

Кликните здесь для просмотра всего текста
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
function edit_menu_change(where)
{
    if(where)
    {
      $('.nav-list').on("click", 'i[class^=icon-arrow-down]', function() {
          index = $(this).parent().parent().index();
          save = $(this).parent();
          $('.nav-list li').eq(index + 1).after("<li>" + save.parent().html() + "</li>");
          $(this).parent().parent().detach();
        });
 
    }
}


Добавлено через 6 часов 2 минуты
Решил проблему костылем, т.е. добавил счетчик, которые завершает работу функции, если значение счетчика больше одного.
Кликните здесь для просмотра всего текста
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function edit_menu_change(where)
{
    counter = 0;
    var index = 0;
    if(where)
    {      $('.nav-list').on("click", 'i[class^=icon-arrow-down]', function() {
            ++counter;
        if(counter >= 2) return false;
          index = $(this).parent().parent().index();
          save = $(this).parent();
          $('.nav-list li').eq(index + 1).after("<li>" + save.parent().html() + "</li>");
          $(this).parent().parent().detach();
        });
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.03.2015, 16:53
Ответы с готовыми решениями:

Зацикливание слайдера
Допустим есть слайдер, созданный лично, не плагин готовый. Меня интересует, какой алгоритм нужно применить, чтобы зациклить слайдер? Т.е....

Зацикливание слайдера
Всем привет. Подскажите пожалуйста как изменить скрипт зацикливающий показ картинок. Получилось сделать вывод картинок в цикле, но не...

Как убрать зацикливание при выборе? использую плагин selecter
Если использую плагин стилизация select , то на событие выбора он зацикливает выдачу результата $(&quot;select&quot;).selecter(); ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.03.2015, 16:53
Помогаю со студенческими работами здесь

Зацикливание
Пишу функцию задержки: function delay(ms) { var d_handler = new Date(); var current = d_handler.getMilliseconds(); ...

Зацикливание скрипта
Нужно исправить ошибку: если много раз кликать, по кнопке, тогда скрипт зацикливается. Как я понял нужно создать еще одну функцию, но куда...

Зацикливание при клике по ссылке.Как исправить?
Доброго дня всем. У меня есть сценарий JS для нажатия на ссылки, которые содержат некое слово. Это работает. window.onload =...

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

зацикливание
Есть задание создать прогу тестирования с шифрованием задания, и самим тестом С шифрованиям я справился а вот тесты не выходят при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru