0

ツイッターのようなソーシャルネットワークのウェブサイトを作っています。ユーザーが投稿を編集したいときは、div を開き、テキストエリア、「保存」ボタン、「キャンセル」ボタンを jquery で追加します。

ただし、キャンセル ボタンは 1 回しか機能しません。ユーザーが投稿を編集するために 2 回目にクリックすると、キャンセル ボタンは機能しなくなります。

$(function() 
{    
    function edit(chirp_id)
    {
        var div1 = $('<div></div>');
        div1.addClass('thumb2');
        div1.attr('id', chirp_id);
        $(div1).css('display','none');

        if($(div1).is(':visible'))
        {
            return;
        } 
        else
        {
            // Before the 'cancel' button I append the textarea and 'save' button

            var cancel = $('<button></button>');
            cancel.attr("id","cancelEdit");
            cancel.text("Cancel");

            cancel.addClass('button');
            cancel.appendTo(div2);

            $('#cancelEdit').click(function()
            {
                $(div1).fadeOut("slow");
            });
        }

        my_edit = edit;
     });

関数を JavaScript で呼び出します

function edit_chirp(chirp_id)
{
    my_edit(chirp_id);
}
4

3 に答える 3

1

これを試してください..IDではなくdomでイベントをバインドします..

$(function () {

function edit(chirp_id) {
    var div1 = $('<div></div>');
    div1.addClass('thumb2');
    div1.attr('id', chirp_id);
    $(div1).css('display', 'none');

    if ($(div1).is(':visible')) {
        return;
    } else {
        //Before the 'cancel' button I append the textarea and the 'save' button
        var cancel = $('<button></button>');
        cancel.attr("id", "cancelEdit");
        cancel.text("Cancel");

        cancel.addClass('button');
        cancel.appendTo(div2);

        cancel.click(function () {
            $(div1).fadeOut("slow");
        });
    }
    my_edit = edit;

});
于 2013-10-15T12:28:50.047 に答える