2017-02-16 26 views
1

以下のサンプルコードは、編集ボタンで編集可能な行を作成するためのコードです.3つのボタンがあります。最初は、更新ボタンを隠しています。編集ボタンをクリックすると、私はインライン編集をクリックして無効にする必要があります。
私は以下のコードを書きましたが、私が間違ったことを見つけることができませんでしたか?編集ボタン付きテーブルのインライン編集

完全コード:Fiddle。 主なものは動的なデータを使用していますので、選択した行だけをクリックすると有効になります。私が間違ったことを教えてください。

+1

あなたが達成しようとしていることは、if($(this).html()== 'Edit'){'? – vijayP

+0

あなたの他の部分はcozのみを呼び出すことはありませんeditボタンはclass edit .. ボタン ''を指定するとうまくいきます。あなたのクリックイベントは更新ボタンを呼び出さないので、あなたはそれを変更する必要があります。 – bharat

答えて

1

以下のコードを見てください。唯一の変更のカップルとそのちょうどあなたのコード:https://jsfiddle.net/xcmvzpuk/5/

$('.edit').click(function() { 

    var editId = $(this).attr('id'); //here we will get id like edit0 and edit1 and so on 
    $("#" + editId).hide(); 
    var number = editId.replace("edit", ""); //grab the number from id 
    $("#update" + number).show();//show the corresponding update button 

    var currentTD = $(this).parents('tr').find('td'); 
    //enable the current row 
    $.each(currentTD, function() { 
     $(this).prop('contenteditable', true) 
    }); 

    }); 

    $('.update').click(function() { 
    var updateId = $(this).attr('id'); 
    $("#" + updateId).hide(); 
    var number = updateId.replace("update", ""); 
    $("#edit" + number).show(); 

    var currentTD = $(this).parents('tr').find('td'); 
    //disable the current row 
    $.each(currentTD, function() { 
     $(this).prop('contenteditable', false) 
    }); 
    }); 
+0

うわー!!どうもありがとうございます! – user7397787

+0

ようこそ@ user7397787 ...! – vijayP

+0

'編集 'ボタンをクリックすると、編集可能なテキストボックスが自動的に表示されます。代わりに' td'の上にカーソルを置いてください。可能でしょうか? – user7397787

0

名前

あなたtr数値行ごとに - その後、あなたの編集ボタンを作る例row1row2のため、および潜在的に編集可能なtd.tdCanEditのようにクラスを追加それに応じてbutton1,button2という名前が付けられています。次に、クリックされたボタンを押す機能を作成します。その番号を抽出します。この番号を使用して行IDを取得します。あなたの行の子どもたちのそれぞれの.tdCanEdit分類された要素を見つけてください。あなたの.contenteditableクラスを追加してください。

もちろん、修了後に.contenteditableクラスをすべて削除してください。

($(this).html() == 'Edit')のチェックを避けてください。代わりにクラスを使用する(ボタンにいくつかのクラスを追加する)。

関連する問題