Мой php-скрипт создает таблицу со списком курсов и кнопок в каждой строке. Очевидно, что каждый набор кнопок должен делать то же самое, но для этой конкретной строки. Каждая строка содержит кнопку с классом = 'add_button', class= 'wait_button' и class= 'detail_button'. Значение для каждой кнопки - это идентификатор курса этой конкретной строки. Этот скрипт отправляется обратно на главную страницу через ajax и вставлен в середину страницы.
Когда я нажимаю на одну из этих кнопок, я хотел бы запустить базовое событие jquery, чтобы проверить, что каждая кнопка правильно установлена. Однако мой текущий код, похоже, не работает. Я видел это в подобном посте, пробовал решение и ничего не получал. Поэтому я оставил свой первоначальный сценарий. Спасибо за любые предложения.
courseDb.php:
while($row = mysqli_fetch_array($findCourses)){
echo "<tr>".
"<td><h3>" . $row['courseDept']. $row['courseNumber']. "-".$row['courseSection']."</h3>".
"<p>" . $row['courseName']."</p>".
"<td><p>Course Capacity: " . $row['courseSize']."/". $row['courseCurrent']."</p>".
"<p>Waitlist Capacity: " . $row['waitSize']."/". $row['waitCurrent']."</p></td>".
"<td><button class='add_button' value='".$row['courseID']."'>Add to Schedule</button></td>".
"<td><button class='wait_button' value='".$row['courseID']."'>Add to Waitlist</button></td>".
"<td><button href='#coursesDetailStud' class='detail_button' value=".$row['courseID'].">View detail</button></td>".
"</tr>";
}
courses.php:
$(".add_button").click(function(){
var clicked = $(this);
alert(clicked.val());
});
Этот скрипт отправляется обратно на главную страницу через ajax и вставлен в середину страницы.
Мне кажется, что эти строки (и кнопки) возвращаются AJAX и создаются после загрузки страницы.
Как обычно, любой скрипт, помещенный непосредственно в файлы PHP или HTML, выполняется при загрузке страницы. Если вы просто используете метод click
, он привязывает события только к элементам, уже существующим на странице, и не имеет никакого эффекта, если HTML-элементы будут добавлены позже с помощью AJAX и DOM manuipulation.
Вы будете нуждаться on
с делегацией, чтобы сделать ваше мероприятие будет связано даже для элементов, загруженных впоследствии. (Предполагая, что родительская table
существует в HTML/PHP)
$('table').on('click', '.add_button', function(){
//your code
});
on
если не использовать click