无法触发php创建的按钮

时间:2013-11-15 02:16:24

标签: php jquery

我的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>";        

}

courses.php:

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

1 个答案:

答案 0 :(得分:2)

  

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

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

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

您需要on代理,以使您的事件受到约束,即使是之后加载的元素也是如此。 (假设父级table存在于HTML / PHP中)

$('table').on('click', '.add_button', function(){
    //your code
});
相关问题