2009-09-16 2 views
2

스크립트의 첫 번째 함수로 jQuery Autocomplete을 사용하면 다른 함수가 실행되지 않습니다. 나는 바닥, 다른 스크립트가 작동으로 자동 완성을 이동하는 경우, 그러나여러 jQuery 함수 및 자동 완성

<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과 비슷한 문제가있는 사람이 있습니까?

+0

그게 효과가있다, 나는 그것을 항상한다. 기능 중 하나의 오류로 인해 다른 기능이 실행되지 않을 수 있습니까? – stimms

+3

@Wraith Monster : 자동 완성 기능을 대체하고 기능 호출을 더 간단하고 작동하도록 제안합니다 (경고를 제안합니다). 경고가 문제없이 실행되면 문제를 다른 영역으로 좁힐 수 있습니다. –

+0

에티켓에 대한 질문 : 데이비드의 답변이 효과가 있으며, "자동 완성"문제가 있음을 알게되었지만 전체 코드가 작동하지 않습니다. 새 스레드를 시작하거나이 스레드를 편집합니까? –

답변

3

jQuery는 아무런 문제없이 선언 된 순서대로 모든 $(function()...) 핸들러를 실행해야합니다. autocompletesuggest에 대한 전화가 범인 인 것 같습니다.

jQuery는 이벤트 핸들러에 대해 매우주의를 기울이고 있으며 클릭 핸들러를 사용하여 위와 유사한 작업을 수행하면 서로를 덮어 쓰지 않고 순서대로 실행된다는 것을 알 수 있습니다. 그것을 시도 :

다음과 같이 someElement이 마크 업되어 가정 :

<span id="someElement" onclick="alert('Me First!');" /> 

을 ... 그리고 자바 스크립트

$("#someElement").click 
(
    function() 
    { 
    alert("1"); 
    } 
); 

$("#someElement").click 
(
    function() 
    { 
    alert("2"); 
    } 
); 

당신은 세 가지 경고 상자는 다음과 같은 순서로 표시가 나타납니다 : "나를 먼저 ! ","1 "및"2 "

jQuery는 이벤트가 발생할 때 클릭하는 첫 번째 기능으로 마크 업 된 onclick 핸들러를 유지하기 위해 추가 마일을 사용합니다. 따라서 ASP.NET과 같은 서버 측 기술에서이 라이브러리를 사용하는 것이 매우 안전합니다. ASP.NET은 여러 곳에서 핸들러를 onclick으로 뿌립니다.

는 다음을 수행, 요소에서 모든 jQuery를 할당 클릭 이벤트 핸들러를 제거하려면 다음이 할당 된 다른 방법을 클릭 핸들러를 제거하지 않는
$("#someElement").unbind("click"); 

곰 염두에

(즉, 온 클릭 속성에서 마크 업).

+0

$ (function() {...}); $ (document) .ready (function() {...});에 대한 지름길입니다. http://docs.jquery.com/Core/jQuery#callback을 참조하십시오. – kevingessner

+0

@kevingessner : 저를 공제 했습니까? 그것은 약간 강하다. –

+0

$ (function() {})은 $ (document.ready (function() {})의 줄임말입니다. OP 버전이 효과가있는 것 같습니다. – womp