1

我有一个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 的值不发生变化,以便可以将其用作最终变量或静态变量或其他东西?

4

3 回答 3

1

尝试DOMNodeInsertedMutation 事件,当将新节点插入到文档中时,此事件会触发,您可以更新变量的值:

$(document).bind("DOMNodeInserted", function(e){
    alert('New Element: ' + e.target)
    div_contents = $("div").html()
})

演示

于 2012-07-11T17:35:11.317 回答
1

div_contents只会在你分配时改变。如果 is 的值div_contents<h2></h2>是因为那是你调用时 div 的状态$("div").html()。如果此后 div 发生更改,则该变量将保留其值,直到您进行另一次分配。

我需要查看更多您的代码才能了解实际情况。

于 2012-07-11T17:35:31.667 回答
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);
}
于 2012-07-11T17:44:25.433 回答