2012-08-29 86 views
0

我正在jQuery中創建一個對話框,並使用以下建議清除按下取消按鈕上的數據。從jquery對話框恢復原始數據,腳本不工作

// store the old content 
var myOldContent = $("#cancelbutton").html(); 

// change content 
$("#cancelbutton").html(someNewContent); 

// and change it back 
$("#cancelbutton").html(myOldContent); 

問題是,此方法清除數據,但我使用兩個輸入,在信息被清除後不起作用。

我有一個日曆輸入(稱爲外部.js)和colorPicker,也在外部.js中初始化。

如何清除數據而不會丟失這兩個組件的功能?

+0

你有兩個輸入上的一些事件監聽器? –

+0

日曆使用jQuery中的datepicker ui,並且colorpicker具有用於捕獲事件的事件偵聽器:selectorParent = $(event.target).parents(「#」+ selector.attr('id'))。length; (event.target === $(selector)[0] || event.target === selectorOwner [0] || selectorParent> 0){ return; } $ .fn.colorPicker.hidePalette(); – guergana

+0

日曆使用在輸入上選擇的值(日期從 - 日期到)進行初始化,並且具有beforeShow函數調用。 – guergana

回答

0

請勿使用.html(),它只是將html本身並不包含其中包含事件偵聽器和數據的實際DOM對象。

我的建議是做這樣的事情,雖然它可以做很多不同的方式取決於您的佈局:

// store the old content 
var myOldContent = $("#cancelbutton").clone(true); // 'true' so events are copied 

// change content 
$("#cancelbutton").html(someNewContent); 

// bind new events for the newContent here 

// and change it back 
$("#cancelbutton").replaceWith(myOldContent); 
+0

它不起作用。 – guergana

+0

等等,你的意思是輸入標籤?在這種情況下,只要執行'$(「input」)。val(「」)'將清除它們。 – Nal