如果你需要一个代码 - 我会发布它,但似乎问题不在代码中。
我做了菜单。点击菜单后 - 子菜单被下载。在此之后我改变了CSS来为开放部分及其下载的子菜单应用新样式。但是这个CSS不起作用。如果我在从inspactor窗口添加后复制此动态内容并直接粘贴为html,并将更改后的CSS作为菜单的新部分 - 刷新页面后这个新部分的工作没有问题,所有样式都适用。如果我在动态添加内容后使javascript更改CSS - 新样式不起作用。他可以通过setAttribute毫无问题地进行更改 - 但不起作用(正如我之前所说的那样 - 代码很好,因为在刷新页面后复制粘贴此部分后,所有样式都运行良好。我在哪里可以找到错误?
代码的一部分
document.getElementById("menu_item_1235").parentNode.setAttribute("class", "adm-sub-submenu-block adm-sub-submenu-open");
var xmlDoc = http_request.responseXML;
var nodeLength = xmlDoc.getElementsByTagName("child");
for (var i = 0; i < nodeLength.length; i++) {
document.getElementById("menu_item_1235").nextSibling.appendChild(document.importNode(xmlDoc.getElementsByTagName("child")[i].childNodes[0], true));
}
屏幕截图:
i.stack.imgur.com/1Haxs.png i.stack.imgur.com/3zbxX.png
当我这样做时,CSS部分工作
var string = (new XMLSerializer()).serializeToString(nodeLength[0].childNodes[0]);
document.getElementById("menu_item_1236").nextSibling.innerHTML = string;
document.getElementById("menu_item_1236").parentNode.setAttribute("class", "adm-sub-submenu-block adm-sub-submenu-open");
只突出显示部分内容:
答案 0 :(得分:0)
如何从ajax请求添加内容?也许您的ajax内容被读作文本而不被解析为dom,因此不会应用CSS。
答案 1 :(得分:0)
为了识别错误,我们将要求代码。但是,您可以尝试按如下方式添加Ajax成功类。这可以节省您的时间:
$.ajax({
url: "/sample.php",
type: "GET",
data: "request=somedata",
success: function(e){
$(".submenu").html(e);
$(".submenu").addClass("submenu_class");
}
});