2013-10-26 2 views
0

Я использую следующее для встроенного редактирования.Размытие JQuery и ввод ключа - размытие не работает

Я хочу Аякса стрелять, когда клавишу ввода прессованных или пользователя щелкает прочь (размытие)

При входе нажатие клавиши все в порядке, но AJAX не обстрел размытости?

// inline editing 
$(document).on('blur keypress', 'span[contenteditable=true]', function (e) { 

    if (e.type == 'blur' || e.keyCode == '13') { 

     $.ajax({ 
      type:'POST', 
      url:'/ajax/actions/editGenre.php', 
      data:{ 
      content: $(this).text(), 
      id: $(this).attr('rowId') 
      }, 
      success:function(msg){ 
      $('span[contenteditable=true]').removeClass('inlineEdit').addClass('editAble'); 
      } 
     }); 

     e.preventDefault(); 

     } 

}); 
+0

Какая часть кода точно не в состоянии работать для вас? Акт отправки данных при размытии, удаление класса inlineEdit и т. Д. – Deryck

+0

ajax не срабатывает при размытии –

ответ

0

Событие Blur не срабатывает для тегов span. Используйте что-то еще, предназначенное для получения фокуса.

2

Исправлено:JSFiddleWiddleBiddleBoDiddle (прокомментировал свой AJAX для скрипки и использовал предупреждение, чтобы продемонстрировать)

$(document).on('focusout keypress', 'span.inlineEdit', function (e) { 
    e.preventDefault(); 
    if (e.type == 'focusout' || e.keyCode == '13') { 
     $.ajax({ 
      type: 'POST', 
      url: '/ajax/actions/editGenre.php', 
      data: { 
       content: $(this).text(), 
       id: $(this).attr('rowId') 
      }, 
      success: function (msg) { 
       $('span.inlineEdit').removeClass('inlineEdit').addClass('editAble'); 
      } 
     }); 
    } 
}); 
+0

PS - с моим изменением вам нужно будет добавить новый метод на этом промежутке, чтобы дать ему класс 'inlineEdit' еще раз - '$ ('span.editAble'). click (function() {$ (this) .removeClass ('editAble'). addClass ('inlineEdit');});' – Deryck

Смежные вопросы