我試圖創建一個可拖動列表list.js,但是當我嘗試編輯,添加或刪除一個項目什麼也沒有發生,我想是與回調的東西,但我不能找到解決方案。回調不工作在一個可拖動列表與list.js
這是我的html:
<script src="http://listjs.com/assets/javascripts/list.min.js"></script>
<div id="contacts">
<ul id="sortable">
<li class="id">
<img src="http://lorempixum.com/100/100/nature/1" class="img" >
<h3>The Grasslands</h3>
<p class="description">Lorem ipsum dolor sit amet, consectetur adipiscing elit. .</p>
<td class="edit"><button class="edit-item-btn">Edit</button></td>
<td class="remove"><button class="remove-item-btn">Remove</button> </td>
</li>
<li class="id">
<img src="http://lorempixum.com/100/100/nature/2" class="img" >
<h3>Paradise Found</h3>
<p class="description">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<td class="edit"><button class="edit-item-btn">Edit</button></td>
<td class="remove"><button class="remove-item-btn">Remove</button></td>
</li>
<li class="id">
<img src="http://lorempixum.com/100/100/nature/3" class="img" >
<h3 >Smoke On The Water</h3>
<p class="description">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<td class="edit"><button class="edit-item-btn">Edit</button></td>
<td class="remove"><button class="remove-item-btn">Remove</button></td>
</li>
<li class="id">
<img src="http://lorempixum.com/100/100/nature/4" class="img" >
<h3>Headline</h3>
<p class="description">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<td class="edit"><button class="edit-item-btn">Edit</button></td>
<td class="remove"><button class="remove-item-btn">Remove</button></td>
</li>
</ul>
<table>
<td class="img">
<input type="hidden" id="id-field" />
<input type="text" id="img-field" placeholder="Img" />
</td>
<td class="description">
<input type="text" id="description-field" placeholder="Description" />
</td>
<td class="add">
<button id="add-btn">Add</button>
<button id="edit-btn">Edit</button>
</td>
</table>
</div>
,這是我的js代碼:
/*sortable */
$(function() {
$("#sortable").sortable();
$("#sortable").disableSelection();
});
/* listjs */
var options = {
valueNames: [ 'id', 'description', 'img', ]
};
// Init list
var contactList = new Sortable('contacts', options);
var idField = $('#id-field'),
descriptionField = $('#description-field'),
imgField = $('#img-field'),
addBtn = $('#add-btn'),
editBtn = $('#edit-btn').hide(),
removeBtns = $('.remove-item-btn'),
editBtns = $('.edit-item-btn');
// Sets callbacks to the buttons in the list
refreshCallbacks();
addBtn.click(function() {
contactList.add({
id: Math.floor(Math.random()*110000),
description: descriptionField.val(),
img: imgField.val(),
});
clearFields();
refreshCallbacks();
});
editBtn.click(function() {
var item = contactList.get('id', idField.val())[0];
item.values({
id:idField.val(),
description: descriptionField.val(),
img: imgField.val(),
});
clearFields();
editBtn.hide();
addBtn.show();
});
function refreshCallbacks() {
// Needed to add new buttons to jQuery-extended object
removeBtns = $(removeBtns.selector);
editBtns = $(editBtns.selector);
removeBtns.click(function() {
var itemId = $(this).closest('li').find('.id').text();
contactList.remove('id', itemId);
});
editBtns.click(function() {
var itemId = $(this).closest('li').find('.id').text();
var itemValues = contactList.get('id', itemId)[0].values();
idField.val(itemValues.id);
descriptionField.val(itemValues.description);
imgField.val(itemValues.img);
editBtn.show();
addBtn.hide();
});
}
function clearFields() {
descriptionField.val('');
imgField.val('');
}
在此先感謝
你看到任何控制檯錯誤? – Twisty
不,我沒有任何控制檯錯誤 – Ultimated
真的嗎?我一直得到一個錯誤* ReferenceError:Sortable沒有定義* var lineList = new Sortable('contacts',options);'看到這裏:https://jsfiddle.net/Twisty/q7LhmaLb/1/也許吧應該是'new List();'? – Twisty