创建后立即触发jQuery触发器委派

时间:2011-08-19 12:40:29

标签: jquery ajax delegates

我正在尝试制作一个自动消失的通知框,通知框通过ajax加载,因此我无法使用$(document).ready();

我找到了我正在广泛使用的漂亮.delegate()函数,所以基本上现在ajax创建了一个新的<div class="fade">Stupid monkey!</div>并且我希望它在2秒后根据类定义消失,这个是我到目前为止所得到的:

// ajax request handler
jQuery('#message').append('<div class="fade">Stupid monkey!</div>');

jQuery('body').delegate('.fade', eventType, function()
{
    jQuery(this).delay(2000).slideUp(500, function()
    {
        jQuery(this).remove();
    });
});

无论我替换eventType,我都无法在创建元素后立即触发我的处理程序。我已尝试readyload以及各种替代方案... click有效,但不是我需要的,我无法触发click匿名div

1 个答案:

答案 0 :(得分:1)

jQuery('body').delegate('.fade', eventType, function()
{
    jQuery(this).delay(2000).slideUp(500, function()
    {
        jQuery(this).remove();
    });
});

jQuery('<div class="fade">Stupid monkey!</div>').appendTo("#message").trigger(eventType);

你可以利用链接。创建元素,将其附加到元素,然后在新添加的div上调用trigger。