我有div
如下:
<div><p></p></div>
因此当我这样做时,
var div_contents = $("div").html()
然后
div_contents = "<p></p>"
但是,我有另一个功能,即动态更改div
的内容,比方说,<div><h2></h2></div>
因此,我的div_contents
值已从"<p></p>"
更改为"<h2></h2>"
如何保持div_contents的值不变,以便我可以将它用作final或static变量?
答案 0 :(得分:1)
尝试DOMNodeInserted
Mutation事件,当一个新节点插入到文档中时,此事件将触发,您可以更新变量的值:
$(document).bind("DOMNodeInserted", function(e){
alert('New Element: ' + e.target)
div_contents = $("div").html()
})
答案 1 :(得分:1)
div_contents
只会在您进行作业时更改。如果div_contents
的值为<h2></h2>
,则是因为这是您调用$("div").html()
时div的状态。如果div在此之后发生变化,变量将保留其值,直到您再次进行赋值。
我需要查看更多代码才能看到实际情况。
答案 2 :(得分:0)
修复问题 - 必定在某个地方犯了一个错误,但这现在正在运作。
$(document).ready(function () {
var has_ran = false;
var div_contents;
$(".scenario").bind("contextmenu", function (e) {
e.preventDefault();
var flipped_div = $(this);
if (!has_ran) {
div_contents = $(flipped_div).html();
has_ran = true;
} else {
//do nothing
}
flip(flipped_div, div_contents);
return false;
});
});
function flip(flipped_div, div_contents) {
if ($(flipped_div).hasClass("flipped")) {
$(flipped_div).append(div_contents);
} else {
$(flipped_div).empty();
$(flipped_div).append("<div class=\"scenario-desc\">hi</div>");
}
$(flipped_div).animate({
rotateY: "+=" + (Math.PI) / 2
}, 500, function () {
$(flipped_div).toggleClass("flipped");
}).animate({
rotateY: "+=" + (Math.PI) / 2
}, 500);
}