2017-07-02 71 views
0

点击一个按钮,使用Ajax发送表单,它是假设淡出一个div并将其从页面中删除。淡出和删除作品罚款,我的HTML被删除浏览器检查,但确实如此,if语句用来检查是否股利空出于某种原因不能正常工作jquery是(“:空)不工作后.remove()

这里是我的代码:

$(".sessionSignOutBtn").submit(function(event) 
    { 
    event.preventDefault(); 

    newAjaxRequest($(this).serialize(), "index.php?ajax=sessionSignOut", removedSessionBox); 

    $(this).parent().parent().fadeOut("slow", function() 
    { 
     $(this).remove(); 
    }); 

    if($("#otherSessions").is(':empty')) 
    { 
     $("#otherSessionsTitle").text("No other active sessions"); 
    } 
    }); 

#otherSessions的if语句是什么没有得到执行,我检查了div ID和他们匹配,如果我在#otherSessions中没有内容的页面呈现if语句的作品,它只有当我在w中使用ithin我提交的听众。

newAjaxRequest是在那里发射一个ajax请求没有别的。

+0

您可以创建一个的jsfiddle? – Confused

+0

只是一个猜测,但是'$(this).parent()。parent()'引用了什么?也许你事先删除'#otherSessions'? – zusatzstoff

+0

@zusatzstoff因为表单提交按钮在它自己的div中,所以要删除表单所在的div,我使用它们,它确实会从#otherSessions中删除所有内容(html),因为我在浏览器中检查它基本上变成了'

' – Erdss4

回答

1

如果您要检查div是否有children,请使用if($("#otherSessions").children().length === 0)

+0

谢谢,我用你的答案的一部分来帮助我,不知道为什么有人投票给你。 – Erdss4

1

感谢Denialos和Patrick Evans,我整理出来了。

由于淡出是非阻塞我加入if语句完整的函数内并用于Denialos的回答来检查,如果我的DIV,因为只是用if($("#otherSessions").is(':empty'))做的工作,因为remove()离开的空白有任何孩子。

所以我最终修复的样子:

$(this).parent().parent().fadeOut("slow", function() 
    { 
     $(this).remove(); 

     if($("#otherSessions").children().length === 0) 
     { 
     $("#otherSessionsTitle").text("No other active sessions"); 
     } 
    }); 
0

尝试这种方式

$('.sessionSignOutBtn').submit(function (event) 
{ 
    event.preventDefault(); 
    newAjaxRequest($(this).serialize(), 'index.php?ajax=sessionSignOut', removedSessionBox); 
    $(this).parent().parent().fadeOut('slow', function() 
    { 
    $(this).remove(); 
    if ($('#otherSessions').is(':empty')) { 
     $('#otherSessionsTitle').text('No other active sessions'); 
    } 
    }); 
});