【问题标题】:how to execute jQuery callback on $('div.myclass').remove()?如何在 $('div.myclass').remove() 上执行 jQuery 回调?
【发布时间】:2012-02-14 01:18:43
【问题描述】:

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

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

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

更新: 这是对我要完成的工作的更详细说明。我有一个类 'nojavascript' 的 div。仅当用户未启用 javascript 时,我才想显示此 div。代码如下:

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

问题:这个 div 有时会向用户显示一小段时间,即使启用了 javascript。就好像页面在 .remove() 完成执行之前显示给用户一样。我试图确保用户 永远 看到这个 div,即使是很短的时间,如果启用了 javascript。

【问题讨论】:

    标签: jquery


    【解决方案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>
    

    您不能/不想使用&lt;noscript&gt; 的任何特殊原因?

    【讨论】:

    • 天啊+哈哈。 “你不能/不想使用
    • 一切都好!我高度推荐的一本书是Douglas Crockford 的Javascript: The Good Parts。我想你会发现它很有用! (这就是我拿起
    • 感谢您的提示。我一定会把它捡起来。
    【解决方案2】:

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

    是的,这正是我害怕的意思。

    然后……jQuery remove() callback?

    【讨论】:

    • 哦,那太糟糕了。您知道是否有一些技巧或解决方法可以让我仅在 div 被删除后才执行一段 jquery 代码?
    • 是的。删除操作完成后,紧跟在$('div.myclass').remove(); 之后的任何语句都将执行。这只是正常的同步程序流程。
    • @Beetroot: 似乎有时 $('div.myclass').remove(); 后面的代码在 remove() 完成之前执行。我会更新我的问题并更详细地解释我的问题。
    【解决方案3】:
    $.when($('#qwe').remove()).then(alert('qwe removed!'));
    

    【讨论】:

    • 你真的明白你写的东西吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 2022-12-08
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多