2013-07-03 2 views
0

У меня возникли проблемы с JQuery размытия() функции Это код:редактируемые ввод текста с размытия() JQuery

<a class="quick_edit_title" s="1" u="/administrator/user-group/index/edit/1">Admin</a> 
<a class="quick_edit_title" s="1" u="/administrator/user-group/index/edit/2">User</a> 
<a class="quick_edit_title" s="1" u="/administrator/user-group/index/edit/3">Mod</a> 

Я использую Jquery Ajax с Editable элемента при использовании мыши

$(document).ready(function() { 
    $('.quick_edit_title').each(function() { 
     $(this).click(function() { 
      var url = $(this).attr('u'); 
      var status = $(this).attr('s'); 
      var title = $(this).html(); 
      var old_element = this; 
      var input = $("<input type='text' size='45' value='" + title.replace(/'/gi, "\\'") + "' class='input_quick_edit'/>"); 

      //$(this).replaceWith(input).blur(function() { 
      //alert(this.value); 
      //}); 

     }); 
    }); 
}); 

Когда я нажимаю editable <a>. Элемент <input/> добавлен, но когда я использую функцию blur() jquery, я не могу получить value элемента <input/> и вернуться к элементу <a> при размытии.

+0

Я думаю, вам нужно переключить свое заявление о размытии (в ваших комментариях). Вам нужно сделать что-то вроде '$ (this) .blur (function() {$ (this) .html (input);)}' – ntgCleaner

+0

(не ответ) Использование пользовательских атрибутов, кроме data- *, неверно в HTML5. Вы должны использовать 'data-status' вместо' s' как имя атрибута. То же самое для 'u' ->' data-url'. Затем они также могут быть восстановлены с помощью 'var url = $ (this) .data ('status');'. –

ответ

1

попробовать что-то вроде этого:

$(document).on('click', '.quick_edit_title', function(){ 
    var url = $(this).attr('u'); 
    var status = $(this).attr('s'); 
    var title = $(this).html(); 
    var input = $("<input type='text' size='45' value='" + title.replace(/'/gi,"\\'") + "' class='input_quick_edit'/>"); 

    $(this).replaceWith(input); 
}).on('blur', '.input_quick_edit', function() { 
    alert(this.value); 
}); 

Нет необходимости перебирать с .each() и назначать обработчики кликов для класса, вы можете просто сделать обработчик щелчка класса, замените содержимое и ЦЕПЬ blur функцию.