代码之家  ›  专栏  ›  技术社区  ›  adardesign

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

  •  1
  • adardesign  · 技术社区  · 14 年前

    下面是一个绑定 click 事件,它生成一个包含 <textarea> 然后我把一个 keypress <文本区域> 按键 我只能得到 text().length 点击 发生了。

    如何使用onKeyPress函数来获取 < 当时

    $.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)
                }()
    
            })
        })
    }
    
    2 回复  |  直到 14 年前
        1
  •  1
  •   timothyclifford    14 年前

    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)
                    }()
    
                })
            })
    

    还没测试抱歉

        2
  •  0
  •   adardesign    14 年前

    我有问题,

    而不是通过 .html() 方法, 我曾经 .val()

    原因如下: 这个 .html() 方法(当用于 <textarea> 只查看对象的初始状态 textarea ,当你有 .val()