嗨,我使用下面的代碼在從服務器接收到「推送」事件後檢索更新的內容。然後使用更新的內容替換已經存在的div /內容。通過AJAX調用向動態注入的div應用樣式(xhrGet)
我遇到的問題是我的外部樣式表中的所有樣式都不適用於此新內容。
它對我來說是合理的,爲什麼會發生這種情況......但是沒有辦法解決這個問題嗎?我可以動態應用樣式,正如我在下面所做的那樣,但似乎應該有一種更簡單的方法。
是否沒有辦法將外部樣式表中的樣式自動應用到動態加載的內容?
見下文代碼:
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);
};
經過進一步檢查,我的問題實際上是沒有應用dojo樣式,因爲我在更新目標div的innerHTML屬性後沒有運行dojo.parser.parse()。請參閱:http://stackoverflow.com/questions/4485631/dojo-and-ajax-initializing-html-with-the-dojotype-attr – 2011-01-22 03:26:22