我希望有人能够解释为什么我遇到这个问题。我创建了一个使用PHP类从MySQL数据库生成的基本列表。然后我尝试使用一些基本的jQuery来删除列表项。我无法让它工作很长一段时间,最终发现如果我将jQuery include移动到HTML文件的末尾它可以工作但不包含在脚本的顶部,就像我通常的目标一样。我原以为jQuery文档就绪函数应该已经解决了这个问题,但这不是出于某种原因。
这是jQuery(非常基本的说法):
$(document).ready(function(){
$(".completeButton").click(function(){
$(this).closest('li').remove();
});
});
这是HTML页面主体(注意我的jQuery包含在末尾而不是在标题中它不起作用并删除该项目,但它在这里工作正常吗?):
<?php
session_start();
if(isset($_SESSION['user'])) {
include "header.php";
?>
<h2>Task List</h2>
<?php
include_once "DatabaseConn.php";
include_once "taskList.class.php";
$sql = "SELECT `GV_Employee`.`requests`.`req_ID` , `GV_Employee`.`equipment`.`description` , `GV_Employee`.`employees`.`first_name`, `GV_Employee`.`employees`.`last_name`
FROM requests
RIGHT JOIN equipment
ON requests.eq_ID=equipment.eq_ID
RIGHT JOIN employees
ON requests.emp_ID=employees.emp_ID
ORDER BY requests.req_ID;";
$stmt = $db->prepare($sql);
$stmt->execute();
$results = $stmt->fetchALL();
foreach ($results as $row){
$task[] = new tasklist($row);
}
foreach($task as $item){
echo $item;
}
?>
<script src="tasklist.js"></script>
<?php
}else {
session_destroy();
header("Location: http://dunc2/dylanr/Starters&Leavers/index.php");
//header("Location: http://192.168.0.4/Starters&Leavers/index.php");
exit;
}
?>
以下是动态列表的类:
<?php
class taskList {
private $taskData;
public function __construct($task){
if(is_array($task))
$this->taskData = $task;
}
public function __toString(){
return '<li id="task-'.$this->taskData['req_ID'].'" class="taskList">
<div class="text">'.$this->taskData['first_name'].' '.$this->taskData['last_name'].
' requires: '.$this->taskData['description'].'</div>
<div id="button">
<a href="#" class="completeButton" onclick="completeButton();">Complete</a>
<a href="#" class="taskButton">Priority</a>
</div>
</li>';
}
}
?>
我希望这个问题有道理,我试着在论坛上搜索,但如果有的话就找不到涵盖这种情况的话题。
非常感谢 詹姆斯