2013-08-22 106 views
0

我有一个表与用户,我有一个链接从数据库中删除用户。 有时它可以正常工作,但有时它冻结时,我确认删除,我必须按“Esc”按钮确认窗口消失。 我使用“$(document).on('click',function()”,因为我通过jquery添加用户,如果我使用“$(document).ready(function()”,新添加的用户不会删除。 能否请您查看此脚本错误,并告诉我,如果它的脚本问题还是其他什么东西?可能是有改善它的方法吗?脚本奇怪的行为

脚本

$(document).on('click', function() { 
     $("a:contains('Delete')").click(function(event) { 
      if(confirm("Are you sure ?")){ 
       $.ajax({ 
        url: $(event.target).attr("href"), 
        type: "DELETE", 

        beforeSend: function(xhr) { 
         xhr.setRequestHeader("Accept", "application/json"); 
         xhr.setRequestHeader("Content-Type", "application/json"); 
        }, 

        success: function() { 
         var tr = $(event.target).closest("tr"); 
         tr.css("background-color","#000000"); 
         tr.fadeIn(1000).fadeOut(200, function(){ 
         tr.remove();}) 
        } 
       }); 
      } else { 
       event.preventDefault(); 
      } 
      event.preventDefault(); 
     }); 
    }); 

与删除链接

表格单元格
<a href="/delete/${user.login}.json">Delete</a> 

更新: 我改变了这种方式

脚本

function Delete(event){ 
      if(confirm("Are you sure ?")){ 
       $.ajax({ 
        url: $(event.target).attr("href"), 
        type: "GET", 

        beforeSend: function(xhr) { 
         xhr.setRequestHeader("Accept", "application/json"); 
         xhr.setRequestHeader("Content-Type", "application/json"); 
        }, 

        success: function() { 
         var tr = $(event.target).closest("tr"); 
         tr.css("background-color","#000000"); 
         tr.fadeIn(1000).fadeOut(200, function(){ 
         tr.remove();}) 
        } 
       }); 
      } else { 
       event.preventDefault(); 
      } 
      event.preventDefault(); 
     }; 

链接

<a href="/delete/${user.login}.json" onclick="Delete()">Delete</a> 

但现在我卡住我的href值的URL在空白页上,但用户被删除。

+0

难道你不想检查你的请求是否返回成功结果,然后从表中删除该行? 你必须读取响应,以检查它是否在服务器端的成功过程 – MaveRick

+0

如果你正在向列表中添加新项目,我建议将该函数添加到'onclick'属性,而不是将相同的事件多次附加到元素上每次用户点击页面的任何地方 – MaveRick

+0

它的工作,但现在我得到另一个问题。更新后。 – qiGuar

回答

0

改变你的脚本:

function Delete(url,ele){ 
      if(confirm("Are you sure ?")){ 
       $.ajax({ 
        url: url, 
        type: "GET", 

        beforeSend: function(xhr) { 
         xhr.setRequestHeader("Accept", "application/json"); 
         xhr.setRequestHeader("Content-Type", "application/json"); 
        }, 

        success: function() { 
         var tr = $(ele).closest("tr"); 
         tr.css("background-color","#000000"); 
         tr.fadeIn(1000).fadeOut(200, function(){ 
         tr.remove();}) 
        } 
       }); 
      } else { 
       return false; 
      } 
      //event.preventDefault(); no need for this 
     }; 

和你链接:

<a href="javascript:void(0)" onclick="Delete('/delete/${user.login}.json',this)">Delete</a>

+0

它的工作原理,但行不会从表中删除。 – qiGuar

+0

现在就试试吧 – MaveRick

+0

还是不行 – qiGuar