2014-01-19 11 views
0

을 사용하여 textbox 입력 필드에 'disabled'속성을 동적으로 추가했습니다. 그러나 생성 된 HTML은 'disabled'속성을 추가 한 입력란의 textbox 입력란에는 표시되지 않습니다.html 요소에 동적으로 추가 된 속성이 표시되지 않습니다.

그리고 추가되지 않았기 때문에 다른 jQuery 함수가 입력되지 않습니다. 이것은 문서로드 이벤트에서 어떤 곳을 어떻게

: 여기

내 코드입니다

$('.testGroup :input').prop('disabled', true)

이 기능은 툴팁을 표시 할 때 사용할 입력을 통해 click 또는 hover :

$('input:disabled').after(function (e) { 
     debugger; 
     d = $("<div>"); 
     i = $(this); 
     d.css({ 
      height: i.outerHeight(), 
      width: i.outerWidth(), 
      position: "absolute", 
     }) 
     d.css(i.offset()); 
     d.attr("title", i.attr("title")); 
     d.tooltip(); 
     return d; 
    }); 

나는 모두 prop()attr()을 사용/시도했지만, 그들 중 누구도 내 after() 기능을 입력하지 않습니다.

Paul Rosania에 따르면 prop()을 사용해야합니다.

다른 방법으로이 작업을 수행 할 수 있습니까?

편집는 : jsFiddle

+2

jsfiddle을 게시 할 수 있습니까? – kapa

+0

예, 제 질문이 업데이트되었습니다. jsFiddle'('#test'). prop ('disabled', true);'에서 작동하도록 동적으로 비활성화되는 입력을 가져올 수 없습니다. – Quoter

+1

change ('#test'). prop ('disabled', true); ~ $ ('# test'). prop ('disabled', true); –

답변

1

문제는 툴팁을 추가 코드 만 DOM이 준비되면 이후에 실행되는 것입니다. 비활성화 한 모든 요소에 대해 호출해야합니다.

간단한 해결 방법은 툴팁하는 방법을 작성하는 것입니다 :

function AddToolTip() { 
    d = $("<div>"); 
    i = $(this); 
    d.css({ 
     height: i.outerHeight(), 
     width: i.outerWidth(), 
     position: "absolute", 
    }) 
    d.css(i.offset()); 
    d.attr("title", i.attr("title")); 
    d.tooltip(); 
    return d; 
} 

을 그리고, DOM에 준비가 비활성화되어 요소에 툴팁을 적용하려면이 방법을 사용

$('input:disabled, button:disabled').after(AddToolTip);

입력 요소를 사용 중지하는 경우 다시 메서드 호출

$('#test').prop('disabled', true).after(AddToolTip);

Fiddle

+0

매력처럼 일했습니다. 감사합니다! – Quoter