Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我只想每次删除一条新闻,但我´;我删除了不止一个_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 我只想每次删除一条新闻,但我´;我删除了不止一个

Javascript 我只想每次删除一条新闻,但我´;我删除了不止一个,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个php文件,其中包含来自数据库的新闻列表 在每一条新闻中,我都有一个删除它的链接,如下所示: echo '<a id="'.$result_news['id_news'].'" class="j_newsdelete" href="#">Delete</a>'; 将事件绑定到外部,并将变量也放在外部 var news_id = null; $("a#no").click(function(event){ event.preventDefault();

我有一个php文件,其中包含来自数据库的新闻列表

在每一条新闻中,我都有一个删除它的链接,如下所示:

echo '<a id="'.$result_news['id_news'].'" class="j_newsdelete" href="#">Delete</a>';

将事件绑定到外部,并将变量也放在外部

var news_id = null;

$("a#no").click(function(event){
    event.preventDefault();
    $('.confirm').fadeOut("slow",function(){
        $('.delete_dialog').fadeOut("slow"); 
    });
    $('.content .news li[id="'+ news_id +'"]').css('background','#f5f5f5');
    news_id = null;
});
$("a#delete").click(function(event){
    event.preventDefault();
    if (!news_id) return;
    $.post(url,{action:'news_del',id: news_id},function(){
        window.setTimeout(function(){
            $('.content .news li[id="'+ news_id +'"]').fadeOut("slow");
        },500);
        $('.confirm').fadeOut("fast",function(){
            $('.delete_dialog').fadeOut("fast"); 
        });
    });
});

$('.content').on('click','.j_newsdelete',function(){
    news_id = $(this).attr('id');
    $('.content .news li[id="'+ news_id +'"]').css('background','red');
    $('.delete_dialog p').text('Are you sure you want to remove this news?');
    $('.delete_dialog').fadeIn("slow",function(){
        $('.confirm').fadeIn("slow");
    });
    return false;
});

将事件绑定到外部,并将变量也放在外部

var news_id = null;

$("a#no").click(function(event){
    event.preventDefault();
    $('.confirm').fadeOut("slow",function(){
        $('.delete_dialog').fadeOut("slow"); 
    });
    $('.content .news li[id="'+ news_id +'"]').css('background','#f5f5f5');
    news_id = null;
});
$("a#delete").click(function(event){
    event.preventDefault();
    if (!news_id) return;
    $.post(url,{action:'news_del',id: news_id},function(){
        window.setTimeout(function(){
            $('.content .news li[id="'+ news_id +'"]').fadeOut("slow");
        },500);
        $('.confirm').fadeOut("fast",function(){
            $('.delete_dialog').fadeOut("fast"); 
        });
    });
});

$('.content').on('click','.j_newsdelete',function(){
    news_id = $(this).attr('id');
    $('.content .news li[id="'+ news_id +'"]').css('background','red');
    $('.delete_dialog p').text('Are you sure you want to remove this news?');
    $('.delete_dialog').fadeIn("slow",function(){
        $('.confirm').fadeIn("slow");
    });
    return false;
});

事实上,您的问题是由于您正在其他事件处理程序中分配事件处理程序,特别是在每次单击原始的删除按钮时,您都会绑定yes/no click处理程序

基本上:

$('.content').on('click','.j_newsdelete',function(){
    ...
    $("a#no").click(function(event){
    ...
    });
    $("a#delete").click(function(event){
    ...
    });
 });
要更好地演示问题,请参见以下内容:


一种可能的解决方案是对单击的新闻项id使用全局变量:

事实上,您的问题是因为您正在其他事件处理程序中分配事件处理程序,特别是每次单击原始的删除按钮时,您都会绑定yes/no click处理程序

基本上:

$('.content').on('click','.j_newsdelete',function(){
    ...
    $("a#no").click(function(event){
    ...
    });
    $("a#delete").click(function(event){
    ...
    });
 });
要更好地演示问题,请参见以下内容:


一个可能的解决方案是对单击的新闻项id使用全局变量:

为什么要在另一个事件处理程序中绑定事件?为什么要在另一个事件处理程序中绑定事件?谢谢,您的解决方案似乎可以工作。但是我在我的delete.js文件中删除了新的用户、类别等。它的“正确”是一个$(function(){…});对于我这样删除的每个对象(类别、新闻等)?@OzzC如果你正在做同样的事情,也许你可以创建一个函数来决定在每种情况下要做什么。但是如果功能非常不同,那么您可以保留不同的功能。谢谢。我看到了你们的代码,它似乎工作了,但现在我来到电脑前测试它,它不工作了。用你的代码我不会删除任何新闻。当我点击一些新闻时,我得到了我的红色背景,但新闻没有被删除。而且,如果我点击“否”,我的背景不会保持颜色。#f5f5。@OzzC但是对话框正在淡出吗?忘了,它正在工作。我忘了做两件事。谢谢你的帮助!谢谢,您的解决方案似乎有效。但是我在我的delete.js文件中删除了新的用户、类别等。它的“正确”是一个$(function(){…});对于我这样删除的每个对象(类别、新闻等)?@OzzC如果你正在做同样的事情,也许你可以创建一个函数来决定在每种情况下要做什么。但是如果功能非常不同,那么您可以保留不同的功能。谢谢。我看到了你们的代码,它似乎工作了,但现在我来到电脑前测试它,它不工作了。用你的代码我不会删除任何新闻。当我点击一些新闻时,我得到了我的红色背景,但新闻没有被删除。而且,如果我点击“否”,我的背景不会保持颜色。#f5f5。@OzzC但是对话框正在淡出吗?忘了,它正在工作。我忘了做两件事。谢谢你的帮助!