Для моего проекта мне нужен редактируемый текст, поэтому я решил использовать некоторые плагины, но я также новичок в jQuery и решил создать свой собственный редактируемый ярлык [inline edit].
Вот мой код:
Когда пользователь щелкает элемент с классом editable
$(".editable").live("click",function(){
//alert($(this).text());
//CurrentOBJhtml = $(this).text();
if (typeof CurrentOBJhtml == 'undefined' || CurrentOBJhtml =="" )
{
CurrentOBJhtml = $(this).text();
}
nextHtml = "<input style='border:1px solid red;' type='text' class='hoverable' value='"+CurrentOBJhtml+"' />";
var c = nextHtml;
$(this).html(c);
$(this).children().focus();//$(this).focus();
return false;
});
Когда пользователь покидает hoverable
$(".hoverable").live("focusout",function(){
var Hovertext = $.trim($(this).val());
if (Hovertext == null || Hovertext=="")
{
$(this).parent().text(CurrentOBJhtml);
}
else
{
$(this).parent().text(Hovertext);
}
return false;
});
Проблема в том, что когда я начинаю редактировать первый элемент, он работает хорошо, но если есть два элемента с классом editable
, второй также получает значение первого?
Пожалуйста, проверьте следующий пример:
<label class='editable'>userMania1</label>
<label class='editable'>userDirection1</label>
Я могу редактировать первый ярлык, но когда я нажимаю второй, я получаю значение первого, поэтому второй будет <label class='editable'>userMania1</label>
, что неверно.
Пожалуйста, обратите внимание, что я немного новичок в этой технологии и пытаюсь учиться с моим текущим проектом, как я могу решить эту проблему?
Спасибо.