我的代码是这样的:
<label><li><input name="skills[]" class="skills" value="1" type="checkbox" /></li>a</label>
<label><li><input name="skills[]" class="skills" value="2" type="checkbox" /></li>b</label>
对于选中复选框的更改(左侧元素),我使用以下代码:
$('input.skills').on('change', function() {
if($(this).is(':checked'))
{
$(this).parents('li').append('<span class="text">add</span>');
} else {
$(this).parents('li').find('.text').remove();
}
$(this).animate({left:'500'},1000);
});
但是,不要更改LABEL位置,只需更改选中的复选框位置。
答案 0 :(得分:-1)
你可以移动整个李。 http://jsfiddle.net/pyuAU/
HTML
<ul class="skill-holder">
<li><input name="skills[]" class="skills" value="1" type="checkbox" /></li>
<li><input name="skills[]" class="skills" value="2" type="checkbox" /></li>
</ul>
CSS
.skill-holder > li {
position: relative;
}
JS
$('.skill-holder').on('change', '.skills', function() {
var $this = $(this),
parent = $this.closest("li"),
moved;
if(moved = $this.is(':checked'))
{
parent.append('<span class="text">اضافه</span>');
} else {
parent.find('.text').remove();
}
parent.animate({left:moved ? 500: 0},1000);
});