我正在尝试制作一个自动消失的通知框,通知框通过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
,我都无法在创建元素后立即触发我的处理程序。我已尝试ready
,load
以及各种替代方案... click
有效,但不是我需要的,我无法触发click
匿名div
。
答案 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。