Javascript 加载Ajax内容后使用jQuery

Javascript 加载Ajax内容后使用jQuery,javascript,jquery,ajax,drupal,drupal-behaviors,Javascript,Jquery,Ajax,Drupal,Drupal Behaviors,在将ajax内容添加到页面后,我很难实现对加载的DOM元素的影响。打印下面代码中显示的项目数的My console.log打印出0,不过当我运行console.log($('.user alert').length)时在firebug上它打印出2,这是正确的,因为我在页面上填充了2个元素 这是我的密码: ( function($) { Drupal.behaviors.alerts = { attach: function (context) { var I

在将ajax内容添加到页面后,我很难实现对加载的DOM元素的影响。打印下面代码中显示的项目数的My console.log打印出0,不过当我运行
console.log($('.user alert').length)时在firebug上它打印出2,这是正确的,因为我在页面上填充了2个元素

这是我的密码:

    ( function($) {

  Drupal.behaviors.alerts = { 
    attach: function (context) {

      var InfiniteRotator =
      {
          init: function()
          {
              //initial fade-in time (in milliseconds)
              var initialFadeIn = 1000;

              //interval between items (in milliseconds)
              var itemInterval = 5000;

              //cross-fade time (in milliseconds)
              var fadeTime = 2500;

              //count number of items
              var numberOfItems = $('.user-alert').length;
              console.log(numberOfItems);

              //set current item
              var currentItem = 0;

              //show first item
              $('.user-alert').eq(currentItem).fadeIn(initialFadeIn);

              //loop through the items
              var infiniteLoop = setInterval(function(){
                  $('.user-alert').eq(currentItem).fadeOut(fadeTime);
                  if(currentItem == numberOfItems -1){
                      currentItem = 0;
                  }else{
                      currentItem++;
                  }
                  $('.user-alert').eq(currentItem).fadeIn(fadeTime);

              }, itemInterval);
          }
      };
      InfiniteRotator.init();
    }
  };

}( jQuery ));
以下是我试图针对的html:

<div class="block block-user-alert contextual-links-region block-user-alert block-user-alert-user-alert odd" id="block-user-alert-user-alert">
<div id="user-alert-45" class="user-alert">
   <div class="user-alert-close"><a href="javascript:;" rel="45">x</a></div>
   <div class="user-alert-message"><span class="user-label">User Alert:</span> Test Alert 2</div>
</div>

<div id="user-alert-43" class="user-alert" style="display: none;">
   <div class="user-alert-close"><a href="javascript:;" rel="43">x</a></div>
   <div class="user-alert-message"><span class="user-label">User Alert:</span> Test Alert 3</div>
</div>
</div>

您需要调用
InfiniteRotator.init()将ajax图像添加到页面后。

您提到使用ajax添加图像。你能发布实现这一点的代码吗?当然可以,尽管ajax被称为其贡献的代码存在问题,所以我不应该修改它。drupal插件帮不上忙。。您可能想在上阅读评论,或者在那里发布,因为这是一个特定于drupal的stackexchange站点。好的,无论如何,谢谢Gaby:)
(function ($) {

  Drupal.behaviors.user_alert_get_message = {
    attach: function(context) {
      $.ajax({
        type: 'GET',
        url: Drupal.settings.basePath + Drupal.settings.user_alert.url_prefix + 'js/user-alert/get-message',
        success: function(response) {
          var id = $('.block-user-alert').attr('id');
          $('#' + id).html(response[1].data);
        }
      });

      $('body').delegate('div.user-alert-close a', 'click', function() {
        id = $(this).attr('rel');
        $.ajax({
          type: 'GET',
          data: 'message=' + id,
          url: Drupal.settings.basePath + Drupal.settings.user_alert.url_prefix + 'js/user-alert/close-message',
          success: function(response) {
            $('#user-alert-' + id).fadeOut('slow');
          }
        });
      });
    }
  };
}(jQuery));