Привет, мне было интересно, может ли кто-нибудь помочь мне. У меня есть персональный проект PHP TODO List, который я могу ввести в задачу, а затем нажав "Enter", задача автоматически добавляется в список. Существует функция удаления этих taks и 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>';
}
}
?>
Список todo в настоящее время загружен на сайт http://derekonay.com/todo Заранее спасибо за помощь.
Я думаю, что проблема с вашим кодом заключается в том, что он не был завершен в событии готовности документа. Чтобы исправить это, попробуйте что-то вроде этого:
<script type="text/javascript">
$(document).ready(function()
{
$.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');
});
});
$('.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);
});
});
</script>
$(document).ready(function() { ... });
или что-то эквивалентное?