문제

나는 선언을 사용하는 것을 발견했습니다 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 속성).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top