【问题标题】:Jquery .addclass 'Duration' Not working even with Google Labs script?Jquery .addclass 'Duration' 即使使用 Google Labs 脚本也不能正常工作?
【发布时间】:2011-05-27 09:07:13
【问题描述】:

jQuery .addclass 函数可以很好地添加类,但它们不会在持续时间内出现:

    jQuery(document).ready(function(){

newdiv = $('<div id=\'id".$row_new['ID']."\' style=\"display:none;\" class=\"eventdiv\" data-sort=\"" . $row_new['TimeStamp'] . "\">" . $row_new['Title'] . " TIME: " . $row_new['TimeStamp'] . "</div>');

    $('[data-sort=".$after."]').after(newdiv);

    $('#id".$row_new['ID']."').slideDown('slow', function() {                                                                                   
        $(this).addClass('gradient shadow curved_sml', 5000);
    });

    });

代码被转义,因为它作为对象从 php 页面(通过 ajax 请求)返回到 html 页面。

我已经尝试了所有不同版本的 JqueryUI 和 Jquery,似乎没有一个允许它向 .addclass 添加持续时间,5000 只是变成了延迟。

目前我安装了 JqueryUI 1.8.9 和 Jquery 1.5.2,因为这些版本似乎在 JSfiddle 中执行持续时间,但不在我的页面上..

【问题讨论】:

    标签: php jquery-ui jquery


    【解决方案1】:

    编辑: 我收回其中的一部分……jQuery UI 确实接受duration 作为addClass 的第二个参数。 jQuery 本身 接受持续时间作为第二个参数。 jQuery UI 中的第二个参数是添加类的效果应该持续多长时间;如果您想延迟添加课程,那么我的答案仍然有效。


    addClass 不接受延迟作为第二个参数。

    如果您希望在 slideDown 完成 5 秒后添加课程,请使用 setTimeout

     $('#id".$row_new['ID']."').slideDown('slow', function() {
        var that = this;                                                                                   
        setTimeout(function () {
            $(that).addClass('gradient shadow curved_sml');
        }, 5000);
     });
    

    如果您希望 slideDown 花费 5 秒,并且要立即添加课程:

    $('#id".$row_new['ID']."').slideDown(5000, function() {
        $(this).addClass('gradient shadow curved_sml');
    });
    

    【讨论】:

    • jQuery UI 扩展了 jQuery addClass() 的附加功能,看看:jqueryui.com/demos/addClass
    • @Darth:我发布后不久就意识到了:)。 jQuery UI 是有史以来发布的最糟糕的库。它应该像这样改变核心 jQuery 函数的行为:(.
    • 同意。谢谢你的链接
    猜你喜欢
    • 2019-07-26
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多