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

ミューテーションイベントを試しDOMNodeInsertedてください。新しいノードがドキュメントに挿入されると、このイベントが発生し、変数の値を更新できます。

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

デモ

于 2012-07-11T17:35:11.317 に答える
1

div_contents割り当てを行ったときにのみ変更されます。の値がである場合、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 に答える