【发布时间】:2014-05-13 08:08:59
【问题描述】:
你好所以我想知道是否有人可以帮助我。我有一个个人 TODO List PHP 项目,我可以输入一个任务,然后按“Enter”,任务会自动添加到列表中。有一个功能可以删除这些任务和 2 个选项卡,一个用于查看当前任务,一个用于查看已删除(或已完成)任务的存档。
一旦我实现了选项卡,我的删除功能就停止了工作。我假设它与 view.task.php 的发布位置有关。下面是我的 jQuery 函数,用于显示任务/存档以及删除函数。
function delete_task() {
$.get('includes/view-task.php');
$('.delete-button').click( function(){
var current_element = $(this);
var id = $(this).attr('id');
$.post('includes/delete-task.php', { task_id: id }, function() {
current_element.parent().fadeOut("fast", function() { $(this).remove(); });
alert('it worked');
});
});
}
function show_tasks() {
$('.task-button').click(function(){
var current_element = $(this);
var id = $(this).attr('id');
$.post('includes/view-task.php' , function(task) {
$(task).appendTo('.todo-list ul').hide().fadeIn();
});
$('.archive-item').fadeOut("slow", function() { $('.archive-item').remove(); });
$('.task-button').attr('disabled','disabled');
$('.archive-button').attr('disabled',false);
});
}
这是我的视图任务 php 脚本:
<?php
require("connect.php");
$query = mysql_query("SELECT * FROM tasks ORDER BY date ASC, time ASC");
$numrows = mysql_num_rows($query);
if($numrows>0){
while( $row = mysql_fetch_assoc( $query ) ){
$task_id = $row['id'];
$task_name = $row['task'];
echo '<li class="task-item">
<span>'.$task_name.'</span>
<img id="'.$task_id.'" class="delete-button" width="10px" src="images/close.svg" />
</li>';
}
}
?>
待办事项列表目前已上传至http://derekonay.com/todo提前感谢您的帮助。
【问题讨论】:
-
你的 jquery 代码是包裹在
$(document).ready(function() { ... });还是类似的东西中? -
目前没有,我只是将所有函数都包含在一个 functions.js 文件中,该文件包含在我的结束正文标记之前。在文件的顶部,我调用了所有 4 个函数,add_task();、delete_task();、show_tasks(); 和 show_archive();
-
是的,它不会工作。将代码包装在文档就绪函数中。
-
我需要摆脱我的功能还是将其放入 if/else 中,例如 if (tasks-are-shown) delete_task();其他(什么都没有)?
-
见下面我的回答。您不需要为这些代码块定义函数。