Как редактировать значение td при двойном щелчке по нему

Я хочу редактировать значение td конкретного идентификатора, когда я дважды щелкаю по нему. Я написал логику. В приведенном ниже коде функция get() вернет 10 статусов, которые присвоены таблице td. Если дважды щелкнуть любой статус, мне нужна функция редактирования и сохранения на месте. Но я не знаю, почему это не работает. Пожалуйста, кто-нибудь, помогите мне.

    <html>
    <head><title></title></head>
    <body>
    <div id="body" >
    </div>
    </body>
    </html>
    <script>


                    $(document).ready(function(){

                    var table='<table>';
                        table += '<tr><th style=""> Status</th></tr>';
                        table += '</table></br>';

                    $("#body").append(table);
                    var $tbody = $('<tbody>').appendTo('#body table:last');
                    $.ajax({
                    type : 'POST',
                    url : '@routes.Application.get()',
                    data : {
                    itemupc : item[0]
                    },
                    beforeSend:function()
                    {   

                    }, 
                    success : function(items) {

                    $.each(items, function(j, itemsdetails) {



               if(itemsdetails[3]=="R")

                    $tbody.append('<tr><td  id="my'+itemsdetails[0]+'" class="editableTD">0</td></tr>');

                                        }); 
}    
    });
               $("#item_content").on('dblclick','.editableTD',function(e){ //assign event to editableTD class
                    e.stopPropagation();
                    var currentID=$(this).attr("id"); //grab the current id instead
                    var currentValue= $(this).html();
                    inlineEditSave(currentID,currentValue);
                });
                function inlineEditSave(currentElement,currentValue)
                    {
                    //$(currentElement).html('<i class="fa-li fa fa-spinner fa-spin"></i>');
                        $(currentElement).html('<input type="text" class="thVal" value="' + currentValue + '" />');
                        $(".thVal").focus();
                        $(".thVal").keyup(function (event) {
                            if (event.keyCode == 13) {
                                $(currentElement).html($(".thVal").val().trim());

                            }
                        });
             $(document).click(function () {

                    $(currentElement).html($(".thVal").val().trim());

            });
    }
                    });

            </script>

1 ответ

Решение

Учитывая, что вы используете Font Awesome, могу ли я предположить, что вы используете bootstrap? Если да, то есть ли какая-то конкретная причина, по которой вы сами кодируете логику? Существует библиотека для этого, называемая x-edtiable, которая выполняет всю тяжелую работу за вас:

http://vitalets.github.io/x-editable/

Демо / примеры использования можно найти здесь:

http://vitalets.github.io/x-editable/demo-bs3.html

Другие вопросы по тегам