通过AJAX调用将样式应用于动态注入的div(xhrGet)

时间:2011-01-22 02:15:09

标签: javascript html css ajax dojo

嘿伙计们,我从服务器收到“推送”事件后,使用下面的代码检索更新的内容。然后使用更新的内容替换已存在的div /内容。

我遇到的问题是我的外部样式表中的所有样式都没有应用于这个新内容。

我觉得为什么会发生这种情况是有道理的......但是没有办法解决这个问题吗?我可以动态地应用样式,正如我在下面所做的那样,但似乎应该有一种更简单的方法。

是否无法将外部样式表中的样式自动应用于动态加载的内容?

见下面的代码:

loadContent = function(page, count) {
    var xhrArgs = {
        url: '/content/'+page+'/'+count+'/',
        handleAs: 'text',
        load: function(response) {
            dojo.byId('content').innerHTML = response;

            dojo.query('.dropdown').forEach(function(node, index, arr) {
                dojo.style(node, 'display', 'none'); // **This defaults to "display: none" in the stylesheet, but it's not applied until I do this**
            });
        },
        error: function(error) {
            console.debug('error loading content');
        }
    };

    var deferred = dojo.xhrGet(xhrArgs);
};

1 个答案:

答案 0 :(得分:2)

样式表已动态应用。如果没有发生这种情况,则会出现错误,并且新内容可能没有CSS应用的标记名称和属性。因此,请仔细检查返回的数据,并使用Firebug帮助您处理新内容。