Intereting Posts

Функция Javascript всегда не запускается после .load

Итак, у меня есть три поля <select> выстроенные по горизонтали следующим образом:

———- | teacher1 | —- | student1 | —- | student6 |

———- | teacher2 |

———- | teacher3 |

Okey, поэтому для этого примера мы используем учителей и студентов, учитель может содержать несколько учеников. И когда вы выбираете учителя из левого списка, все ученики, подключенные к этому учителю, появляются в среднем списке. И справа у нас есть ученики, у которых нет учителя. Если вы нажмете на ученика в среднем поле, он будет удален из этого учителя и появится в правом поле. (СОЕДИНЕНИЯ СДЕЛАНЫ В СУБД MYSQL).

Все поля выбора находятся внутри <div> , которые с jquery используют функцию .load () для изменения содержимого, например, для функции удаления:

  $('#hold2').load("page.php?q=" + data); 

Все работает нормально, и база данных изменяется правильно, проблема в том, что я хочу обновить поле mid и right после функции .load (), поэтому вам не нужно обновлять страницу, чтобы увидеть результат. Поэтому я поставил следующие функции:

  $('#hold2').load("page.php?q=" + data); refreshTable1(teacher); refreshStudent(); 

Здесь refreshTable1:

  function refreshTable1(value) { teacher = value; $('#holder').load("example.php?q=" + value); } 

Здесь refreshStudent:

  function refreshStudent() { $('#table').load("examplepalge.php?p=blabla", function(){ setTimeout(refreshTable1(etc), 2000); }); } 

Иногда он освежает как среднее, так и право поле прямо, иногда нет, а иногда и только один из них. Как я могу сделать этот запуск гладким, чтобы поля, безусловно, правильно $('#hold2').load("page.php?q=" + data); ПОСЛЕ: $('#hold2').load("page.php?q=" + data);

ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: не все соединения и функциональные ссылки верны, я просто изменил некоторые вещи для этого примера. Но мы уже знаем, что функции работают, а именно, что иногда они загружаются правильно, а иногда и нет.

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