6

ここでは本当にシンプルなものを見落としているような気がします。別の目が必要です。私はこれに私がすべきよりもはるかに多くの時間を費やしました。

このフィドルを見てください=> http://jsfiddle.net/R8SxU/

1年以上追加してもアイコンが更新されないのはなぜですか?一番上のものは常に新年を追加することを象徴するプラスであり、下の残りのものは削除するためにマイナスであるようにしたいです。それは最初のもので動作しますが、最初のものだけです。各ボタンで機能(コンソール出力)が正しくアクティブになっているので、正しいセレクターがあると思います。

HTML

<div>
    <label for="year-0">Enter Year</label>
    <input id="year-0" type="number" title="Enter Year"/>
    <button id="addYear" title="Add Year">Year</button>
</div>

Jquery

$('#addYear')
    .button({icons: { primary: 'ui-icon-circle-plus' } })
    .on('click', function() { 
        var clone      = $('div').first().clone(true),
            peroid     = $('div').length;

        //update ID
        $(clone).find('label').prop('for','year-' + peroid);
        $(clone).find('input').prop('id','year-' + peroid);

        $('div:first button')
            .prop('id','')
            .attr('title','Remove Year')
            .addClass('removeYear');


        $(clone).insertBefore('div:first');
        $('.removeYear:first')
             .off('click')
             .button({ icons: { primary: 'ui-icon-circle-minus' } })  // Why Wont This Work
             .on('click', function() { console.log('remove function');  });

    });
4

2 に答える 2

5

次のことを試してください。

$('#addYear').button({
    icons: {
        primary: 'ui-icon-circle-plus'
    }
}).on('click', function () {
    var clone = $(this).parent().clone(),
        peroid = $('div').length;

    clone.find('label').prop('for', 'year-' + peroid).end()
         .find('input').prop('id', 'year-' + peroid).end()
         .find('button').prop('id', 'id' + peroid).prop('title', 'Remove Year')
         .addClass('removeYear').find('span:first').addClass('ui-icon-circle-minus');

    clone.insertAfter('div:last');
});

$(document).on('click', 'div:not(":first") button', function () {
    $(this).closest('div').remove();
});

http://jsfiddle.net/Y33GV/

于 2013-03-08T18:01:41.287 に答える
4

これを試してみてください:-http://jsfiddle.net/adiioo7/R8SxU/4/

var clone = $('div').last().clone(true),
         peroid = $('div').length;

それ以外の

var clone=$('div').first().clone(true),
            peroid=$('div').length;
于 2013-03-08T17:49:23.190 に答える