jquery
2015-01-17 3 views 0 likes 
0

필드 집합을 닫고 필요에 따라 자동으로 항목을 추가하거나 제거하는 항목 목록이 있습니다. 그러나 자동 완성이 필요하지만 처음 입력 필드에서만 작동합니다 내가 초점을 전화 했어하지만 복제 된 것들 :복제 된 필드에서 자동 완성 기능이 작동하지 않습니다.

$("input[name*='autocomplete]").on("focus", function() { 
    $(this).autocomplete({ 
     ... 
    }); 
}); 

답변

2

이벤트는 페이지가로드 될 때 이미 DOM에있는 요소에만 바인딩 할 수 있습니다. 동적으로 추가 요소를 들어, 정적 부모 요소에서 이벤트를 위임 할 on()를 사용할 수 있습니다

$(document).on("focus", "input[name*='autocomplete']", function() { 
    $(this).autocomplete(....); 
}); 

대신 document 모든 부모 요소

이벤트를 위임 할 수 있습니다. 입력 내용이 예를 들어 아이디 form과 용기에 추가 할 :

$("#form").on("focus", "input[name*='autocomplete']", function() { 
    $(this).autocomplete(....); 
}); 

Fiddle 및 참조 :이 정말 오래된에 문제가 있는지 http://api.jquery.com/on/

+0

'.focus()'는'.on ("focus", handler)'no의 줄임말이다. – 3zzy

+1

@ 3zzy 네가 맞긴하지만'.focus()'는'element.focus()'의 요소에 붙어있다. 여기에서'on()'은 DOM의 요소에서 나중에 추가 할 수있는 자식 요소로'focus()'/'.on ("focus", handler) 이벤트를 위임하는 데 사용됩니다. ("focus", target, handler)'는'target.focus (handler)'/'target.on ("focus", handler) –

1

이 시도 :

$("input[name*='autocomplete']").on("focus", function() { 
    $(this).autocomplete({ 
     ... 
    }); 
}); 

당신은 작은 따옴표 누락되었습니다.

도움이 되었기를 바랍니다.

+2

누군가거야 자신의 엉덩이를 물린. 하지만 의심 스럽네요 .-) 그럼 첫 번째 입력에서도 작동하지 않습니다 ... – arkascha

+0

HA 문제가 될 수는 있지만 다시 그의 코드를 모두 볼 수는 없습니다. 난 그냥 이것이 당신이 정말로 거기에 작은 따옴표가 필요하다는 것을 보는 요소라고 생각하고 있습니다. lark @arkascha –

+1

일반적으로 사람들은 _exact_ 코드를 게시하지 않습니다. 대신 그들은 의미가 있고 실제로 선호되는 축소 버전을 게시합니다. 그러나 주어진 코드에서 따옴표가 빠져 있다는 것은 맞습니다. – arkascha

관련 문제