我试图创建一个可拖动列表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