我正在制作一个成分应用程序,用户可以在其中插入成分
我的应用程序如下所示:
如您所见,第一个成分跨度的末尾没有X,因为您必须至少有一个成分,但其余的成分跨度有。我还在使用Jquery 可排序插件,因此如果您在任何成分跨度的外部附近单击,您可以更改成分的顺序。这很好用,除非您移动第一个成分跨度,然后该跨度的末尾没有X,即使您将其移动到最后一个位置。
所以我想做的是让第一个成分范围最后总是没有X,即使用另一个成分范围切换顺序也是如此。我试过这个:
$('ingredientsCOUNT > span:first').hide(deleteButton);
但它没有用?还有其他建议吗?非常感谢所有帮助,这是我的代码:
HTML(可以忽略 php!)
<div class='formelementcontainer funky'>
<label for="ingredient">Ingredients</label>
<div id='ingredientsCOUNT' class='sortable'>
<span>
<input type="text" class='small' name="ingredient" id="ingredient" placeholder='QTY'/>
<select name='measurements'>
<option value='' name='' checked='checked'>--</option>
<?foreach ($measurements as $m):?>
<option value='<?=$m->id;?>'><?=$m->measurement;?></option>
<?endforeach;?>
</select>
<input type="text" name="ingredient" id="ingredient" placeholder='Ingredient'/>
</span>
</div>
<div class="clear"></div>
<div class='addSPAN tabover'>
<a class='float-right' id='btnAddIngredients' href='#'>Add Ingredient</a>
</div>
</div>
jQuery
(function($) {
$(document).ready(function () {
$('#btnAddIngredients').click(function () {
var num = $('#ingredientsCOUNT span').length;
var newNum = new Number(num + 1);
var deleteButton = $("<a class='float-right' style='margin:10px 2px;' href='#'><img src='<? echo base_url()."public/img/delete.png";?>' height='11' width='11' /></a>");
deleteButton.click(deleteThis);
$('#ingredientsCOUNT > span:first')
.clone()
.attr('name', 'ingredient' + newNum)
.append(deleteButton)
.appendTo('#ingredientsCOUNT')
.fadeIn();
$('ingredientsCOUNT > span:first').hide(deleteButton); //THIS IS MY SOLUTION THAT DIDN'T WORK
});
function deleteThis() {
var span = $(this).closest('span')
span.fadeOut('slow', function() { span.remove(); });
}
$( ".sortable" ).sortable(); //jQuery Sortable initialized
});
})(jQuery);