2009-07-06 65 views
1
$('.textedit').editable('/challenge/skeleton/textedit/textedit/process', { 
    loadurl: '/challenge/skeleton/textedit/textedit/loadraw', 
    loaddata: {id: $(this).attr('id'), client: $(this).data('client')}, 
    submitdata: {id: $(this).attr('id'), client: $(this).data('client')}, 
    .... 
}); 

$('#textedit_footer').data('client', 5); 
$('#textedit_home1').data('client', null); 
$('#textedit_test').data('client', 3); 
$('#textedit_userCreate').data('client', null); 

我的問題在於發送GET數據。 'id'數據得到適當的發送,但'客戶'數據沒有。我認爲我以錯誤的方式使用data(),但不能把它放在手指上。有什麼建議麼?或者有關如何以更好的方式做到這一點的任何建議?以下是其中一個div的示例:發送GET數據時發生編輯問題

<div class="textedit" id="textedit_home1"> 
<p>test</p> 
</div> 

所有.textedit元素都是就地編輯功能。當提交數據(在submitdata和loaddata中指定)時,應該將兩個數據包發送到服務器,以便它知道如何處理它:第一個數據是原地編輯的id,它存儲爲id的元素(這部分工作)。我稱之爲'客戶'的第二部分數據。我能想到瀏覽器通過data()知道哪些元素具有哪個客戶端的唯一方法。但有些原因,我的實現不起作用。 '客戶'數據很簡單,沒有發送,這是錯的。

+0

你到底想幹什麼?預期的結果是什麼? – Tomalak 2009-07-06 06:31:46

+0

所有的.textedit元素都是現場編輯功能。當提交數據(在submitdata和loaddata中指定)時,應該將兩個數據包發送到服務器,以便它知道如何處理它:第一個數據是原地編輯的id,它存儲爲id的元素(這部分工作)。我稱之爲'客戶'的第二部分數據。我能想到瀏覽器通過data()知道哪些元素具有哪個客戶端的唯一方法。但有些原因,我的實現不起作用。 '客戶'數據很簡單,沒有發送,這是錯的。 – Jonah 2009-07-06 07:05:39

回答

1

修訂的答案...

當您創建封閉值爲null如果你碰巧來設置它後,它不會影響submitdata XHR調用時,數據已經爲的想「封閉」更好的詞。它不會在發送時評估數據('客戶端')。

更新

縱觀插件,你可以做服用點這樣

$(".editable").editable("http://www.example.com/save.php";, { 
    submitdata : getData 
}); 

function getData(){ 
     return {id: $(this).attr('id'), client: $(this).data('client')} 
}