Вот плагин, который связывает событие click
с элементом, который генерирует контейнер с <textarea>
, а затем я связываю событие keypress
с этим новым <textarea>
, все в порядке, но внутри обработчика keypress
я могу получить состояние text().length
только с того момента, когда произошла начальная click
.
Как получить функцию onKeyPress для получения состояния <textarea>
в то время, когда keypress
произошло?
$.fn.pluginTemp = function(options){
var defaults = {
editContainer:"<div class='editContainer'><textarea></textarea></div>",
maxChar:20,
onKeyPress:function(){
console.log($(".editContainer>textarea").text())
}
}
var options = $.extend(defaults,options);
return this.each(function(i,e){
var el = $(e), initText
el.bind("click", function(){
initText = el.text();
el.parent().append(options.editContainer);
el.parent().find(".editContainer>textarea").html(initText);
// isn't this function remembering the state for when its is defined? which is on keypress?
return function(){
el.parent().find(".editContainer>textarea").bind("keypress",options.onKeyPress)
}()
})
})
}