Я создал поле ввода, которое представляет простое поле при нажатии клавиши ввода (13). Код работает, если вы нажали клавишу в первый раз, но затем он больше не работает, пока я не обновлю страницу. Я пытаюсь отменить привязку события, но ничего не происходит.
$(function () {
$('#new_list').bind('keypress', function (e) {
if(e.which === 13) {
console.log('enter pressed');
var nl_val = {};
nl_val['list_name'] = $('#new_list').val();
$.post('/lists/js_new_list',nl_val,function(str) {
if(str == 'error') {
$('#info').css({'color':'red'})
.fadeIn(1000)
.text('There was an error.')
.fadeOut(1000);
} else {
$('#new_list').hide().val('');
$('#info').css({'color':'#00620C'})
.fadeIn(1000)
.text('List created.')
.fadeOut(1000);
js_refresh_lists();
}
});
$('#new_list').unbind("keypress");
} // UPDATE: this is the if(e.which === 13) end
});
});
function js_refresh_lists() {
var id = list_id();
console.log('refreshing list');
$('#lists').load('/lists/js_refresh_lists');
}
ОБНОВЛЕНИЕ: я хочу, чтобы пользователь мог добавить другой список (в моем случае) без необходимости обновлять страницу, чтобы событие нажатия клавиш снова заработало. На данный момент, как указано в начале этого поста, он работает только при первом добавлении нового списка, после чего клавиша ввода ничего не делает.
Может кто-нибудь выяснить, почему ключ отсоединяется?
Приветствия