2013-10-15 39 views
0

我的網站允許用戶發佈,也編輯這些帖子。我的JavaScript變量不會更新jQuery的事件手裏

當用戶想要編輯帖子時,我使用jquery創建了一個帶有「textarea」和「save」按鈕的「div」,並​​將用戶在其帖子中的任何內容加載到「textarea」中。

var textarea = $('<textarea></textarea>'); 
textarea.attr({ 
      rows:"2", 
      cols:"56", 
      type:"text", 
      id:"textedit", 
      name:"text" 
     }); 
textarea.text(post_content); 
textarea.appendTo(div2); 

var save_button = $('<button></button>'); 
    save_button.attr({ 
       id:"editChirp", 
       value:"Post" 
       }); 

     save_button.text("Save"); 
     save_button.addClass('button'); 
     save_button.appendTo(div2); 

而且按鈕的jQuery我的事件處理程序如下:

save_button.click(function() { 
      var temp = $('#textedit').val(); 
      alert(temp); 
}); 

的問題是臨時變量犯規更新,它保持相同的值後第一次進行了更新。

+1

你每個點擊事件被調用時重新聲明變量。你需要一個閉包/全局範圍變量來改變。 – KnowHowSolutions

+0

不應該是'textarea.val(post_content);'? –

+0

@KnowHowSolutions感謝您的回覆。 我確實嘗試在事件外部聲明變量,只在內部更新它,但仍然不起作用 – beckinho27

回答

0
save_button.click(function() { 
       var temp = $(this).siblings('textarea.myPostText').eq(0); 
// eq(0) returns the first sibling found. 
       alert(temp.val()); 
    }); 

樣本與兄弟姐妹。給定一個固定的結構,你可以查詢按鈕的兄弟,它應該總是隻返回一個textarea。那麼限制是你可能需要改變你的結構來提供唯一性必需的。

這裏是一個小提琴:http://jsfiddle.net/GUsDg/3/

+0

它警告我[對象對象] – beckinho27

+0

編輯顯示.val() – KnowHowSolutions

+0

非常感謝你的時間。這是現在。 – beckinho27