我只想每次删除一条新闻,但我;I’我删除了不止一个
I just want to delete one news each time, but I´m deleting more than one
我有一个php文件,其中包含来自数据库的新闻列表。
在每条新闻中,我都有一个链接可以删除它,就像这样:
echo '<a id="'.$result_news['id_news'].'" class="j_newsdelete" href="#">Delete</a>';
然后我有我的jQuery和AJAX来获取我的新闻id并删除我的新闻。
但只有当用户在我提供的对话框模式中单击"是"时,我的新闻才会被删除。
<div class="delete_dialog">
<div class="confirm">
<p></p>
<a href="#" id="delete">Yes</a>
<a href="#" id="no">No</a>
</div>
</div>
当我删除每一条新闻时,我的删除操作都很好,但是。。。我这里有个问题。
我遇到的问题:
当我点击"删除"时,我的对话框确认出现,
但如果我在那一刻点击"否",新闻就不会被删除(所以工作正常),我的确认对话框也会关闭。。。
但接下来,如果我在其他新闻中单击"删除",并在对话框确认中单击"是",则此新闻将被删除,但我之前单击"否"的新闻也将被删除。
你能帮我了解一下这里发生了什么吗?
我的jQuery;Ajax
$('.content').on('click','.j_newsdelete',function(){
var 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");
});
$("a#no").click(function(event){
event.preventDefault();
$('.confirm').fadeOut("slow",function(){
$('.delete_dialog').fadeOut("slow");
});
$('.content .news li[id="'+ news_id +'"]').css('background','#f5f5f5');
});
$("a#delete").click(function(event){
event.preventDefault();
$.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");
});
});
});
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;
});
事实上,您的问题是由于在其他事件处理程序中分配事件处理程序,特别是每次单击原始删除按钮时都绑定是/否单击处理程序。
基本上:
$('.content').on('click','.j_newsdelete',function(){
...
$("a#no").click(function(event){
...
});
$("a#delete").click(function(event){
...
});
});
要更好地证明问题,请参阅以下内容:http://jsfiddle.net/6p8mx7nd/
一个可能的解决方案是为单击的新闻项目id使用全局变量:http://jsfiddle.net/6p8mx7nd/1/
相关文章:
- 使用php或javascript从facebook相册URL中删除多余的部分
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何删除多行HTML排列中的空白
- 如何从rails中的代码中删除新行( )
- 删除对HTML元素的拖动
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 按顺序添加和删除类
- iframe正在添加标签,需要删除它们
- 如何在HTML输入字段中添加不可删除的后缀
- addData()从最新图表中删除.js 2.1.3-怎么了
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 删除CKEditor工具栏按钮,但不删除功能
- 当浏览器上的后退按钮到达主页时,我需要删除Class
- 正在删除node.js中已验证的网站
- 正在从页面中删除iframe
- 如何从 HTML 查询中删除项目
- 如何在iOS应用程序中从Firebase中删除超过6小时的数据
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 我只想每次删除一条新闻,但我;I’我删除了不止一个
- 查找匹配的img src并删除它存在不止一次- Javascript