2012-07-11 39 views
1

停止的.html()值我有一個div如下:JQuery的 - 從改變

<div><p></p></div> 

因此,當我做,

var div_contents = $("div").html() 

然後

div_contents = "<p></p>" 

但是我有另一個功能,動態地改變0​​的內容,比方說,到<div><h2></h2></div>

因此,我div_contents值從"<p></p>"變爲"<h2></h2>"

我怎樣才能保持div_contents的值更改,這樣我可以把它作爲一個最終或靜態變量還是什麼?

+0

請粘貼每個函數的代碼。 – RobB 2012-07-11 17:32:54

+1

您的'div_contents'變量將在分配線運行的時間點存儲您的div的html。當元素改變時它不會改變。 – jbabey 2012-07-11 17:32:58

+0

我認爲你應該仔細閱讀[語法](http://api.jquery.com/html/#html2) – JustinStolle 2012-07-11 17:33:51

回答

1

div_contents將只有當你進行分配改變。如果div_contents的值爲<h2></h2>,那是因爲那是您調用$("div").html()時div的狀態。如果div在此之後發生變化,變量將保留其值,直到您進行另一次賦值。

我需要查看更多的代碼才能看到真正發生的事情。

1

嘗試DOMNodeInserted突變事件,當一個新的節點插入到文檔中此事件觸發,你可以更新變量的值:

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

DEMO

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); 
}