Сделайте некоторые столбцы недоступными для редактирования с помощью редактируемой таблицы Mindmup

#javascript

#javascript

Вопрос:

Я использую редактируемые таблицы Mindmup.

Я бы хотел, чтобы последний столбец не был доступен для редактирования (потому что в моем случае это кнопка для удаления строки).

Могу ли я сделать это с помощью этой библиотеки?

Ответ №1:

В настоящее время эта функция не поддерживается.

Но быстрое решение заключается в следующем (на основе этой проблемы):

Измените строку 113 плагина с этого:

 element.find('td').prop('tabindex', 1);
  

К этому:

 element.find('td[data-editable!="false"]').prop('tabindex', 1);
  

И в вашей таблице сделайте соответствующие столбцы недоступными для редактирования следующим образом:

 <tr data-id=123">

  <td data-colname="first_name"
  >Chuck</td>

  <td data-colname="last_name"
  >Norris</td>

  <td data-editable="false"> <!-- data-editable added here -->
    <button type="button" class="btn">
      <i class="ti-close" aria-hidden="true"></i> Remove
    </button>
  </td>

</tr>
  

Примечание: странное форматирование td тегов является преднамеренным: таким образом, редактируемая вставка не вставляет пробелы при редактировании ячейки.

Ответ №2:

Обновить строку 92 в mindmup-editabletable.js чтобы:

  $('.someClass').on('click keypress dblclick focus', showEditor)  

Обновить строку 114 в mindmup-editabletable.js чтобы:

 element.find('.someClass').prop('tabindex', 1);  

Теперь примените class=»SomeClass» к каждому из элементов, которые вы хотите иметь возможность редактировать в своей таблице.

Кроме того, чтобы убрать пробелы в ячейках таблицы, вы можете изменить строку 18 mindmup-editabletable.js быть:

                     editor.val(active.text().trim())  

Ответ №3:

замените строку 16 (в функции showEditor):

 active = element.find('td:focus');
  

с помощью этого кода

                 active = element.find('td:focus').filter(function(){
                    var  i= -1;
                    var elem = this;
                    do {  i} while((elem=elem.previousSibling)!=null);
                    return !(activeOptions.disableColumnNumbers.indexOf(i) > -1);
                });
  

и тогда вы сможете объявить свой редактор, используя опцию disableColumnNumbers следующим образом

 $("selector...").editableTableWidget({disableColumnNumbers: [0,2,3,4,5,6,7,8,9,10,11,12]});
  

удачи, приятель