2010-06-22 66 views
0

jQuery的Ajax请求我与一个消息可以创建div成功的功能...但它似乎并没有显示出来....jQuery的AJAX功能的成功显示信息

success: function(data) { 
    $(function() { 
     $('<div id="alert">Successfully Updated</div>'); 

     var $alert = $('#alert'); 

     if ($alert.length) { 
      var alerttimer = window.setTimeout(function() { 
       $alert.trigger('click'); 
      }, 3000); 

      $alert.animate({ height: $alert.css('line-height') || '50px' }, 200).click(function() { 
       window.clearTimeout(alerttimer); 
       $alert.animate({ height: '0' }, 200); 
      }); 
     } 
    }); 

CSS:

#alert 
    { 
    overflow: hidden; 
    width: 100%; 
    text-align: center; 
    position: absolute; 
    top: 0; 
    left: 0; 
    background-color: #FF0000; 
    height: 0; 
    color: #FFFFFF; 
    font: 20px/40px arial, sans-serif; 
    opacity: .9; 
    } 
+1

var alert = $('

Successfully Updated
');并通过append - $(“body”)附加到dom。append(alert); – xijo 2010-06-22 09:48:57

+0

@joe你的回答工作... – 2010-06-22 09:57:58

+0

由于某种原因,回调是否包含“在DOM准备好”调用? – 2010-06-22 10:05:11

回答

2

您需要将新的created element附加到DOM树

jQuery(更好说Sizzle)否则不能查询它。扩展你这样的代码:

$('<div id="alert">Successfully Updated</div>').appendTo(document.body); 

另一件事,你应该使用class代替id。如果有多个警报会怎么样?你可以用相同的ID创建多个div,这是一个很大的nono

0

您必须将新创建的元素插入DOM。那么只有它会出现。您可以将该元素追加到正文或容器元素。

还有一部分代码令人困惑,超时功能和触发div的click事件。

另外.length将返回一个数字而不是布尔值。并且在成功函数中也不需要文档就绪事件处理程序。

+0

关于成功函数,我正在创建一个div并显示像Twitter这样的消息。 – 2010-06-22 09:54:07

0

您可以将div放在DOM中并使用css display: hidded,然后在成功响应中,您可以通过这种方式更改display: block div将包含在DOM中,并且您可以切换到有点。