2012-09-13 52 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