0

我的 php 脚本创建了一个表格,其中包含每行中的课程和按钮列表。每组按钮显然应该做同样的事情,但针对特定的行。每行包含一个带有 class='add_button'、class='wait_button' 和 class='detail_button' 的按钮。每个按钮的值是该特定行的 courseID。此脚本通过 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>";        

}

课程.php:

$(".add_button").click(function(){
var clicked = $(this);
alert(clicked.val());
});
4

1 回答 1

2

此脚本通过 ajax 发送回主页,并插入页面中间。

在我看来,这些行(和按钮)是由 AJAX 返回的,并且是在页面加载后创建的。

像往常一样,任何直接放在 PHP 或 HTML 文件中的脚本都会在页面加载时执行。如果只是简单的使用click方法,它只会绑定页面中已经存在的元素上的事件,如果HTML元素是以后通过AJAX和DOM操作添加的,则没有效果。

您将需要on委托,以使您的事件即使对于之后加载的元素也被绑定。(假设父级table存在于 HTML/PHP 中)

$('table').on('click', '.add_button', function(){
    //your code
});
于 2013-11-15T02:22:42.807 回答