2012-09-13 22 views
0

我正在写一个占位符,使功能如何绑定动态创建的节点

var t=document.createElement("input"); 
"placeholder" in t||$("input").each(function(){ 
    if("submit"!==$(this).attr("type")){ 
     var n=$(this),l=n.attr("placeholder"); 
     n.css("color","#ccc").val(l); 
     n.focus(function(){("#ccc"==n.css("color")||"rgb(204, 204, 204)"==n.css("color"))&&n.val("").css("color","#000")}); 
     n.blur(function(){""==n.val()&&n.css("color","#ccc").val(l)})} 
}) 

我可以调用DOM准备好这个功能,但如何在新创建的input使用此功能的功能?

+0

这实际上是精缩。一些偶尔的空间会让我的眼睛受伤更少。 – Aesthete

+0

尝试检出http://api.jquery.com/on/替换.live()。应该结合赛事直播 – Brentoe

+0

@Brentoe。上的第一个参数和.live是事件名称,如聚焦或什么的,我不知道用哪个,是有某一事件的OnCreate“? – LotusH

回答

1

我假设你正在试图绑定focusblur回调?

您可能需要on()将结合事件元素可能无法尚未存在。它取代了不赞成live()bind()功能,旨在结合处理程序无论如何,现在或将来

$.on("focus", "input", function() {}); 

您需要提供事件,则选择处理

+0

NOP,占位重点依旧存在...... – LotusH

+0

我不明白你的意思。 – Aesthete

+0

@Aesthete他意味着他想为输入添加一个占位符属性。如果使用焦点,它将清除占位符文本,这意味着添加它几乎是无用的,除非模糊元素。他想要的是听取DOMNodeInserted,测试输入,并将上述方法应用于输入。 – Ohgodwhy