input
요소는 때 양식 필드의 변경을 발사 가져옵니다 change
이벤트가 있습니다. 그래서 : 당신이 명시 적으로 새로운 요소의 이벤트 후크 필요가 없습니다 의미 delegate
를 사용
$('selector_for_your_form').delegate('input[type=file]', 'change', function() {
var form = $(this).closest('form');
form.append(/* ... markup for the new field ... */);
});
. 불행하게도, change
일부 브라우저에서 바로 실행되지 않습니다
Live example
업데이트 (나는 당신의 마크 업 — 이상이이 도시 더 나은 찾고 확실히 좀 더 흥미로운 — 될 것입니다 가정) (사용자가 IE7의 필드에서 포커스를 벗어날 때까지 기다린다). 이벤트를 직접 연결하는 경우 jQuery가이 이상 함을 처리하지만 delegate
을 사용하는 경우에는 처리하지 않습니다. 그래서 여기에 대안이다 : 마크 업 (그리고 나는 그것이 가정) 단지 input
자체보다 더 복잡
$('selector_for_your_form input[type=file]').change(fileChangeHandler);
function fileChangeHandler() {
var form = $(this).closest('form');
$('<input type="file">').change(fileChangeHandler).appendTo(form);
}
경우, 당신은 당신이 바로 그 요소에 change
후킹하고 확인해야합니다. 아니 걱정, 도움 다행 :
Live example
고마워, 내가 완전히 변화를 잊고 흐림 이벤트와 장난되었다 .... 당연이 – Bluemagica
@Blue을 일한 적이. :-) –