ユーザーが材料を挿入する材料アプリケーションを作成しています
私のアプリケーションは次のようになります。
ご覧のとおり、最初の材料スパンには、少なくとも1つの材料が必要なため、最後にXがありませんが、残りの材料スパンにはあります。私もJquerySortablePluginを使用しているので、いずれかの材料スパンの外側近くをクリックすると、材料の順序を変更できます。これは問題なく機能しますが、最初の材料スパンを移動した場合、最後のスポットに移動しても、そのスパンの最後に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);