У меня есть таблица с различными результатами запроса базы данных. Каждый TD имеет идентификатор и onDblClick свойства как это:jQuery: unbind dblclick, а затем связать его снова
<td id="Vorname_2036" onDblClick="makeForm(this.id)">
Mark
</td>
Не возражает имя функции, это не реально сделать форму. Вместо этого он изменяет внутренний HTML-файл td на редактируемый ввод текста, а onChange отправляет запрос AJAX скрипту, который обновляет базу данных с измененным значением ввода текста. Все это работает так, как должно. Единственное: после первого двойного щелчка я хочу отключить dblclick, поэтому пользователь не будет дважды щелкать по текстовому вводу. Мне тоже удалось это сделать. Но после того, как все сделано, я хочу восстановить свойство onDblClick. И здесь я застрял.
Вот код (Та часть, которая закомментирована является та часть, которая, очевидно, не так):
function makeForm(id){
$("#"+id).prop('ondblclick', "");
sHtml=$("#"+id).html();
$("#"+id).html("<input type=\"text\" id=\"t_"+id+"\" value=\""+sHtml+"\">");
$("#"+id).change(function(){
var content = $("#t_"+id).val();
$("#"+id).html("<img src=\"icons/spinner.gif\" align=\"right\" width=\"20\" height=\"20\">");
$.get("includes/query_update.php",{
id:id,
content:content
},
function(data){
$("#"+id).html(data);
/*
$("#"+id).dblclick(
function(){
makeForm(this.id);
}
);
*/
});
});
}
Заранее спасибо!
Martin
Наиболее распространенный способ развязать даже в JQuery, как правило, это 'off()'. В вашем случае это будет '$ (" # "+ id) .off (" dblclick ");'. Я не знаю, поможет ли это решить вашу проблему, но я бы попробовал, если бы был вами. –
Спасибо, это нормально, но моя проблема в том, как вернуть его снова. –
Я знаю, что я говорю, возможно, так, как вы попадаете в него, это может вызвать проблемы при его перезаписи. –