2014-09-30 3 views
0

새로 만든 입력 상자에 기능이 연결되지 않습니다. 이 링크동적 DOM 생성 문제

[이 코드를 확인하시기 바랍니다] [1]

$("#datepicker").datepicker(); 
 

 

 
$("button").click(function(){ 
 
    
 
    $(".add").html('<input id="datepicker" placeholder="click here to open calendar " type="text" />'); 
 
    
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class='add'><input id="datepicker" placeholder="click here to open calendar " type="text" /></div> 
 
<button>Add input again </button>

depen.io/anon/pen/adLzi

+2

이 http://stackoverflow.com/help (관련 ([MCVE]를 포함하십시오/mcve)) 코드를 입력하십시오. 도움을주기 위해 사람들이 인터넷 주변의 링크를 따라 다니길 기대하지 마십시오. –

답변

0
$("button").click(function(){ 

    $(".add").html('<input id="datepicker" placeholder="click here to open calendar " type="text" />'); 

    // move to here your cod 
    $("#datepicker").datepicker(); 

}); 

에 내 코드를 확인하시기 바랍니다 $ (".add") .html (...)은 새로운 DOM 객체를 삭제하고 생성하는 것을 의미합니다.

다음에 분실 된 의미 $ ("# datepicker"). datepicker();

+0

콘텐츠를 교체해야합니다. 추가하지 않습니다. – Vis

+0

그게 전부 야.하지만 왜이 기능은 자바 스크립트를 사용하여 추가 한 InputBox에 붙어 있지 않습니까? – Vis

+0

당신이 원하는 것은 무엇입니까 ?? datepicker를 사용하여 ??? – easywaru

0

시도 이것은 당신이 버튼을 클릭하는

$("button").click(function(){ 
    $("#datepicker").val(""); 
    $("#datepicker").focus(); 
}); 

Demo

1

이 실행되는 코드입니다 :

$("button").click(function(){ 
    $(".add").html('<input id="datepicker" placeholder="click here to open calendar " type="text" />'); 
}); 

는 이것이하는 일은 즉이다 datepicker를 새로운 것으로 대체합니다. 첨부 된 이벤트에 다시 첨부하는 데 문제가 있다는 점을 제외하면 아무 문제가 없습니다.

는 TL : DR은이 코드를 사용 : 이런 일이 발생하지만,이 때문에 내부적으로 아마 이유

심지어 나는 정확한 이유를 모르는

$("button").click(function(){ 
    var el = $('#datepicker'); 
    $.datepicker._clearDate(el); 
}); 

편집, JQuery와 UI에는 링크가 없습니다 이전 DOM 요소의 또한 메모리 누수가 발생합니다.

0

시도는 document.ready 함수에 플러그인 초기화를 이동 :

$(document).ready(function() { 
$("#datepicker").datepicker();` 
}); 

$("button").click(function(){ 
 
    
 
    $(".add").html('<input id="datepicker" placeholder="click here to open calendar " type="text" />'); 
 
    
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class='add'><input id="datepicker" placeholder="click here to open calendar " type="text" /></div> 
 
<button>Add input again </button>