2012-11-27 4 views
0

jQuery UI 자동 완성 플러그인을 사용하고 있습니다.jquery ui 자동 완성 오픈 이벤트가 실행되지 않습니다.

모든 것이 잘 작동하지만 마지막에 "결과 더 찾기"란 상자를 추가하고 싶습니다.

열린 <ul>에 상자를 추가하기 위해 내장 된 open 이벤트를 사용하려하지만 이벤트가 발생하지 않습니다. 자동 완성 목록이 열리고 완전히 작동하며 열린 이벤트가 발생하지 않는 것이 유일한 문제입니다.)

내 코드는 다음과 같습니다

 $("#q").autocomplete({ 
      source: function(request, response) { 
       var results = $.ui.autocomplete.filter(userFriends, request.term); 
       response(results.slice(0, 4)); 
      }, 
      minLength: 2, 
      appendTo: '.searchbox', 
      select: function (event, ui){ 
       window.location.href = '/u/'+ ui.item.value; 
       return false; 
      }, 
      focus: function (event, ui) { 
       return false; 
      }, 
      open: function (event, ui){ 
       console.log("AutoComplete Opened"); 
      } 
     }) 

     .data('autocomplete')._renderItem = function(ul, item) { 
      return $('<li>') 
       .data('item.autocomplete', item) 
       .append(
       '<a>' + 
        '<div>' + 
        '<div><img src="' + item.img + '" alt="" width="50" onerror="onErrorFixProfileImage(this)"/></div>' + 
        '<div>' + item.label + '</div>' + 
        '</div>' + 
        '</a>' 
      ) 
      .appendTo(ul); 
     }; 
이유에 대해이 이벤트가 발생하지 않습니다

사람이 알고 있나요?

감사합니다.

+0

열린 이벤트에서 경고를 시도한 적이 있습니까? – sayannayas

+0

예, 경고, 로그 및 jquery로 시도했습니다. 그것의 다만 발사하지 않는다. –

+0

그것은 나의 케이스 http://jsfiddle.net/9Agqm/7/에서 불을 낸다 – sayannayas

답변

1

최신 업데이트 jquery.dimensions라는 플러그인이 설치되어 jquery-ui 메소드에 많은 문제가 발생했습니다. 문제가 해결 된

1

테스트로서 플러그인 초기화 외부에서 이벤트 바인딩을 시도 했습니까? 예컨대 : 당신은 대신 false를 반환의 다른 행사에 기본을 방지 시도 할 수

$("#q").on("autocompleteopen", function(event, ui) { 
    console.log("AutoComplete Opened"); 
}); 

편집 : 나는 당신의 open 방법을 추가하는 간단한 자동 완성을 테스트 한

select: function (event, ui){ 
    window.location.href = '/u/'+ ui.item.value; 
    event.preventDefault(); 
}, 
focus: function (event, ui) { 
    event.preventDefault(); 
}, 

+0

지금 당장 시도했다. .. 아무 일도 일어나지 않습니다. 오류가 발생하지 않습니다. 응답이 없습니다. –

+0

도움을 주셔서 감사합니다. 답장을 보내지 만 응답이 없습니다. 다른 모든 이벤트를 확인하고 모두 잘 작동합니다. 열린 이벤트 만 죽었습니다. 내 사이트의 다른 곳에서 멈추는 것이 있다고 생각합니다. 아마 당신은 그것이 무엇 일 수 있는지에 관해 안다? –

+0

이제 콘솔에서 다음과 같은 오류가 나타납니다. "잡히지 않은 TypeError : 'defaultView'속성을 읽을 수 없습니다. 정의되지 않았습니다." 관련이 있습니까? –

0

. 잘 작동하고 메시지는 콘솔에 올바르게 기록됩니다.

(function(){ 
    var aTags = ['java', 'javascript', 'actionscript', 'typescript', 'jscript', 'vbscript']; 
    $('#tags').autocomplete({ 
     delay: 50 
     , source:aTags 
     , select: function(event, data){ 
      var $p = $('<p></p>').html(data.item.value).css({'display': 'inline-block', 'background-color': '#a0a0a0', 'color': '#ff0000'}); 
      $(event.target).after($p); 
     } 
     , open: function (event, ui){ 
      console.log("AutoComplete Opened"); 
     } 
    }); 
})()​ 

Demo.

+0

고마워, 나는 그것이 작동하는 것을 안다. 그러나 무엇인가의 이유 때문에, 나의 것은하지 않는다. ... 그것을 무시할 수있는 무엇이 있는지에 관해 아는가? –

관련 문제