2012-02-14 83 views
0

我想在特定div被移除后执行回调。我试过这个,但它不起作用:

$('div.myclass').remove(function(){ 
alert ("div removed");         
}); 

任何人都知道如何执行这样的回调?我检查了remove()的jQuery文档,但没有提及任何有关回调的内容。这是否意味着remove()不支持回调?

更新: 下面是我想要完成的更详细的解释。我有一个类'nojavascript'的div。我只想在用户没有启用javascript的情况下显示这个div。代码如下:

$(document).ready(function() { 
    $('div.nojavascript').remove(); 
    ... // additional jquery commands 
}); 

问题:即使启用了javascript,该div有时也会显示给用户一段时间。就好像在.remove()完成执行之前页面显示给用户一样。我试图确保用户从来没有看到这个div,即使在短暂的时刻,如果javascript被启用。

回答

1

好像你可能会在使用<noscript>更好的运气。这种类型的东西正是标签设计的目的。

<html> 
<head>...</head> 
<body> 
... 
<noscript> 
    <div class="noscript">This doesn't display to users who have JavaScript enabled</div> 
</noscript> 
<div> 
    <p> This displays to JavaScript and non-Javascript alike!</p> 
</div> 
... 
</body> 
</html> 

你不能/不想使用<noscript>任何特别的原因?

+0

OMG + LOL。 “您无法/不想使用

+0

这一切都很好!我**高度**建议的书是_Javascript:道格拉斯克罗克福德的好作品。我想你会觉得它有用! (这是我拿起

+0

感谢您的提示。我一定会选择这个。 – moondog 2012-02-14 02:39:23

0

这是否意味着remove()不支持回调?

是的,这意味着我很害怕。

然后.... jQuery remove() callback?

+0

哦,那太糟糕了。你知道是否有一些技巧或解决方法,让我只有在div被移除后才能执行一段jquery代码? – moondog 2012-02-14 01:27:17

+0

是的。当remove操作完成时,紧跟在$('div.myclass')。remove();之后的任何语句都会执行。这只是正常的同步程序流程。 – 2012-02-14 01:39:15

+1

@Beetroot:似乎有时代码后面的$('div.myclass')。remove();在remove()完成之前执行。我会更新我的问题并更详细地解释我的问题。 – moondog 2012-02-14 01:50:42

0
$.when($('#qwe').remove()).then(alert('qwe removed!')); 
+0

你真的明白你写的是什么吗? – cpburnz 2015-05-12 16:58:18