Javascript 加载Ajax内容后使用jQuery
在将ajax内容添加到页面后,我很难实现对加载的DOM元素的影响。打印下面代码中显示的项目数的My console.log打印出0,不过当我运行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
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));