我已经搜索过其他类似的问题,但没有一个答案适用于我的问题。
这是我的jQuery:
$("i[id^='delete']").click(function() {
$(".container.tim-container").load("getreservations.php");
});
这里是生成更新内容的php:
$count = 0;
echo '<div class="container tim-container">';
echo "<div>";
echo '<h1 class="title">View Reservations</h1>';
echo "</div>";
echo '<div class="reservations">';
foreach ($noDupes as $facilities)
{
echo '<div class="col-sm-12 left-column">';
echo '<h2 id="facility_name'.$count.'" class="facility-title">'.$facilities["facility_name"].'</h2>';
echo '</div>';
foreach ($facilities["dates"] as $dates => $dateValues)
{
echo '<div class="col-sm-3 left-column">';
echo '<h4 id="facility_date'.$count.'" class="facility-title">'.$dateValues["date"].'</h4>';
echo '</div>';
echo '<div class="col-sm-9 right-column">';
echo '<ul>';
foreach($dateValues["timeslots"] as $timeslots => $timeslotValues)
{
echo '<p id="start_time'.$count.'" hidden>'.$timeslotValues["start_time"].'</p>';
echo '<p id="end_time'.$count.'" hidden>'.$timeslotValues["end_time"].'</p>';
echo '<li class="row time-slot text-align">';
echo '<h4 class="display_inline">'.$timeslotValues["start_time"].':00 - '.$timeslotValues["end_time"].':00</h4><i id="delete'.$count.'" class="fa fa-trash-o"></i>';
echo '</li>';
$count++;
}
echo '</ul>';
echo '</div>';
}
}
echo '</div>';
echo '</div>';
尽管它不是漂亮的php代码,但它是有效的。问题是jQuery中的.load()
函数只能工作一次。此外,我还尝试在<i>
元素上使用.on('click', function(){})
。我怎样才能让它工作不止一次?
使用事件委派。它用于绑定现在存在的所有匹配元素和动态创建的元素。
注意:在使用事件委派时,您应该将它附加到一个静态元素。我把它附在
document
上。您可以将它绑定到任何其他静态元素。将其绑定到document
存在一些性能问题。我不知道你的页面中哪些元素都是静态的,所以我使用了document
$(document).on('click', "i[id^='delete']", function() {
$(".container.tim-container").load("getreservations.php");
});