다중 jQuery 함수 및 자동 완성
-
07-07-2019 - |
문제
나는 선언을 사용하는 것을 발견했습니다 jQuery autocomplete 스크립트의 첫 번째 기능으로 인해 다른 기능이 실행되는 것을 방지합니다.
아래 두 번째 및 세 번째 기능은 작동하지 않습니다.
<script>
$(function() {
$("#ent_input").autocomplete('get_suggestions',
{autoFill: true, scroll: false});
});
// Freebase Suggest
$(function() {
$("#ent_input_fb").suggest({type:'/film/director'});
});
$(function() {
$("#ent_input_fb2").suggest({type:'/film/actor'});
});
</script>
그러나 자동 완성을 바닥으로 이동하면 다른 스크립트가 작동하지만 자동 완성되지는 않습니다.
<script>
// Freebase Suggest
$(function() {
$("#ent_input_fb").suggest({type:'/film/director'});
});
$(function() {
$("#ent_input_fb2").suggest({type:'/film/actor'});
});
$(function() {
$("#ent_input").autocomplete('get_suggestions',
{autoFill: true, scroll: false});
});
</script>
누구든지 비슷한 문제를 해결해야합니다 jQuery autocomplete?
해결책
jQuery는 모든 것을 실행해야합니다 $(function()...)
문제없이 선언 된 순서대로 취급자. 당신의 전화처럼 보입니다 autocomplete
그리고 suggest
범인입니다.
jQuery는 이벤트 처리기에 대해 매우 신중하며 클릭 핸들러를 사용하여 위와 유사한 작업을 시도한 경우 (서로를 덮어 쓰지 않고) 순서대로 실행된다는 것을 알 수 있습니다. 시도 해봐:
일부 요소가 다음과 같이 표시되어 있다고 가정합니다.
<span id="someElement" onclick="alert('Me First!');" />
... 그리고 JavaScript
$("#someElement").click
(
function()
{
alert("1");
}
);
$("#someElement").click
(
function()
{
alert("2");
}
);
다음 순서로 표시되는 3 개의 경고 상자가 표시됩니다 : "Me First!", "1,"2. "
jQuery는 이벤트가 발생할 때 클릭 할 첫 번째 기능으로 표시된 on 클릭 핸들러를 유지하기 위해 여분의 마일을 사용합니다. 이로 인해 ASP.NET과 같은 서버 측 기술 로이 라이브러리를 사용하는 것이 매우 안전합니다.
요소에서 모든 jQuery가 할당 된 클릭 이벤트 처리기를 제거하려면 다음을 수행하십시오.
$("#someElement").unbind("click");
이것은 다른 방법으로 할당 된 클릭 핸들러를 제거하지 않음을 명심하십시오 (즉, Markup의 Onclick 속성).