我正在尝试使用 jQuery 使用 AJAX 制作可编辑和更新的项目列表。
HTML
<ul>
<li data-id="1">
<span class="title">Title 1</span><span><a href="#" class="changeLink">Change</a></span>
</li>
<li data-id="2">
<span class="title">Title 2</span><span><a href="#" class="changeLink">Change</a></span>
</li>
<li data-id="3">
<span class="title">Title 3</span><span><a href="#" class="changeLink">Change</a></span>
</li>
</ul>
jQuery
$('a.changeLink').on('click', function(e)
{
e.preventDefault();
// get parent LI element
var li = $(this).closest('li');
// catch current title
var title = li.children('span.title').text();
// replace span
li.children('span.title').html('<input type="text" value="'+title+'" />');
// change the link class and label
$(this).removeClass('changeLink').addClass('saveLink').text('Save');
});
$('a.saveLink').on('click', function(e)
{
e.preventDefault();
// get parent LI element
var li = $(this).closest('li');
// get the id for the AJAX query
var id = li.attr('data-id');
// get the input value
var title = li.children('span.title input').val();
// restore span text with new
li.children('span.title').text(title);
// restore link
$(this).removeClass('saveLink').addClass('changeLink').text('Change');
// make AJAX post to save new title
$.post('updatetitle.php',{ 'id': id, 'title': title }, function(){ alert('OK'); });
});
我的问题似乎是 saveLink 点击事件永远不会发生。此外,changeLink 点击事件似乎不止一次发生。为什么会发生这种情况 - 链接不再有changeLink
课程?
我把它放在一个 jsFiddle 里:http: //jsfiddle.net/jtheman/SZk4h/1/
很高兴我能得到一些意见,我的错误是什么?