2012-09-13 4 views
0
내가 DOM 준비에이 함수를 호출 할 수 있습니다,하지만 어떻게 새로 input을 만들어에이 기능을 사용

방법 동적으로 생성 된 노드

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

자리 표시 자 수 있도록 기능을 쓰고 있어요

에 기능을 결합 하는가?

+0

이것은 실제로 축소되었습니다. 가끔 공간이 있으면 내 눈이 덜 아플 수 있습니다. – Aesthete

+0

.live()를 대체하는 http://api.jquery.com/on/을 확인해보십시오. 그것은 라이브 이벤트를 묶어 야합니다. – Brentoe

+0

.Brentoe .on과 .live의 첫 번째 매개 변수는 포커스 나 무언가 같은 이벤트 이름입니다. 어떤 것을 사용해야할지 모르겠다. 'oncreate'이벤트가 있습니까? – LotusH

답변

1

focusblur 콜백을 바인딩하려고한다고 가정합니다.

on()을 입력하면 이 아닌이 아직 존재하지 않는 요소에 이벤트가 바인딩됩니다. live()bind() 기능을 대체하며 처리기를 , 현재 또는 미래의 모든 개체에 바인딩합니다..

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

당신은 이벤트선택핸들러를 제공해야합니다.

+0

nop, 집중하기 전에 자리 표시자가 존재합니다 ... – LotusH

+0

무슨 뜻인지 이해가 안됩니다. – Aesthete

+0

@Aesthete 그는 입력에 자리 표시 자 속성을 추가하려고 함을 의미합니다. 포커스를 사용하면 자리 표시 자 텍스트가 지워집니다. 즉, 요소를 흐리게하지 않으면 쓸모가 없다는 의미입니다. 그가 원하는 것은 DOMNodeInserted를 듣고, 입력을 테스트하고, 위의 메소드를 입력에 적용하는 것입니다. – Ohgodwhy

관련 문제