在生成的元素上绑定事件并获取其当前状态

时间:2010-09-22 13:54:24

标签: javascript jquery-plugins closures jquery

这是一个插件,用于绑定元素上的click事件,该事件生成一个带有<textarea>的容器,然后在这个新{{1}上绑定一个keypress事件一切正常,但在<textarea>处理程序中,我只能从最初keypress发生时获得text().length状态。

如何在click发生时获取onKeyPress函数以获取<textarea>的状态?

keypress

2 个答案:

答案 0 :(得分:1)

你可以尝试:

return this.each(function(i,e){
            var el = $(e), initText
            el.live('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)
                }()

            })
        })

尚未测试对不起

答案 1 :(得分:0)

我遇到了问题,

不是通过.html()方法获取当前值, 我使用了.val()

原因如下: .html()上使用的<textarea>方法仅查看textarea的初始状态,当您.val()时,它会采样最新值。