1
我正在使用我的Google Chrome擴展的contacts
模塊。用戶可以添加和刪除聯繫人。一切都是用JavaScript和jQuery完成的。如何在物品刪除後更新標記?
這個問題更多的是關於邏輯,所以不要泄露代碼。
這是一個接觸是如何補充說:
function addContact(name){
var n = incContactNum();
chrome.extension.getBackgroundPage().setItem('contact'+n+'', name);
contacts[n] = name;
}
接觸的總數應遞增的,所以我們現在有n
接觸。此外我們更新contacts數組。
所以SQLite的項目表看起來是這樣的:
------------------------
| key value |
------------------------
| contactNum 3 |
------------------------
| contact1 Test1 |
------------------------
| contact2 Test2 |
------------------------
| contact3 Test3 |
------------------------
當行被刪除,例如第2行的表格看起來像這樣:
------------------------
| key value |
------------------------
| contactNum 2 |
------------------------
| contact1 Test1 |
------------------------
| contact3 Test3 |
------------------------
就像你可以看到contactNum
遞減。我們現在有兩個項目,但第二個有3作爲索引,但它應該從contact3更改爲contact2。當您看到我的刪除功能時,您可能會發現問題:
function removeContact(value){
contacts = new Array(getValue("contactNum"));
for(i = 1; i <= parseInt(getValue("contactNum")); i++){
if(getValue("contact"+i) == value){
chrome.extension.getBackgroundPage().deleteItem("contact"+i);
decContactNum();
break;
}
}
}
項目按值刪除。所以我搜索相應的索引來刪除該行。由於聯繫人數目現在爲2,索引3永遠不會達到。
我的想法:第一次拆除工作,所以在指數應該重建。從被刪除的那個減少所有的指數。
任何想法如何做到這一點?
您可能需要修改後臺頁面代碼,遞減的X,`contact'x'`爲'X> i`其中`i`是要刪除的項目。 – SuperSaiyan 2011-01-30 11:14:39
是的,我知道,但如何?這裏是我的後臺頁面代碼http://jsfiddle.net/3jrv4/ – 2011-01-30 11:31:07