2012-08-13 3 views
0

내 ui-autocomplete는 다른 경로로 ajax 요청을 보내야합니다. 내 스크립트는 change select 이벤트에서이 경로를 변경합니다. 그러나 이벤트는 업데이트되지 않고 이전 URL로 요청을 보냅니다.자바 스크립트 이벤트 업데이트

live(), on(), livequery()를 시도했습니다. 아무것도 작동하지 않습니다.

이벤트를 업데이트하는 방법은 무엇입니까?

내 입력 자동 완성 필드 :

<input class="specialization_names ui-autocomplete-input" data-autocomplete-source="/specializations"> 

내가 (커피 스크립트에 의해 생성 된) 다음 방법을 마시고 떠들거야 data-autocomplete-source

이벤트를 변경하고있어

_ref = $('.specialization_names'); 
for (_i = 0, _len = _ref.length; _i < _len; _i++) { 
    input = _ref[_i]; 
    $(input).on('focus', function() { 
    return $(input).catcomplete({ 
     source: $(input).data('autocomplete-source') 
    }); 
    }); 
} 

또는 live()하거나 on() 변경 라이브 쿼리에 플러그인하기

이 코드는 select에서 url을 변경합니다.

var select, _i, _len, _ref; 

_ref = $('.resume_scopes'); 
for (_i = 0, _len = _ref.length; _i < _len; _i++) { 
    select = _ref[_i]; 
    $(select).on('change', function() { 
    var scope_id; 
    scope_id = $(this).children("option:selected").attr('value'); 
    return $(this).siblings('.specialization_names').attr("data-autocomplete-source", "/specializations/" + scope_id); 
    }); 
} 

수동으로 이벤트를 한 번 새로 고치는 방법이 있습니까?

답변

2

jQuery의 .data은 한 번만 (.data을 호출하여 값을 얻습니다) 의 속성을 읽습니다. .attr은 요소의 속성을 업데이트하지만 jQuery의 .data은 값을 캐시했습니다. 업데이트하려는 경우 대신 .data을 사용해보세요.

return $(this).siblings('.specialization_names').data("autocomplete-source", "/specializations/" + scope_id); 
+0

약 5 분 전에도이를 이해했습니다. 솔루션을 가져 주셔서 감사합니다. – Michael

+0

당신을 환영합니다 :-) –