我目前正在开发一个带有 ajax 的小型评论系统。我想在按下回车键时取消绑定 keypress 事件(以避免重复注释)并在成功的 ajax 调用后重新绑定它。
jQuery(".commentDiv textarea").keypress(function(event) {
if(event.which == 13 && !event.shiftKey) {
event.preventDefault();
var textarea = jQuery(this);
var comment = jQuery.trim(textarea.val());
if (!comment.length) {
alert("No valid comment.");
return false;
}
var the_data =
{
...
};
textarea.attr( "disabled", "disabled" );
textarea.val("Saving comment. Please wait...");
textarea.off('keypress.disabled');
// or textarea.unbind('keypress'); which also works
jQuery.post(ajaxurl, the_data, function(sp_response) {
textarea.attr( "disabled", false);
textarea.val("");
textarea.on('keypress.disabled', false); // not working
});
}
});
keypress.disabled
代码取自How to bind, unbind and rebind (click) events in JQuery。
将按键事件重新绑定到元素的最简单方法是什么?