2012-11-29 3 views
1

jQuery UI의 최근 변경 사항으로 인한이 문제를 해결하려고합니다. 나는 codeigniter, jquery 1.8.2를 사용하고 있습니다., jquery UI 1.9.1.jQuery UI 탭 및 기본 태그의 다중 선택 href mishandling

난 항상 머리 부분에 넣고 :

<base href="http://www.example.com/" /> 

그래서 난 내 이미지, 아약스 호출 및 기타 이유로 중앙 URL 방식을 가질 수 있습니다. 문제는 jquery UI가 모든 페이지에 대한 모든 앵커 href에 대한 참조로이를 사용한다는 것입니다. 당신이

http://www.example.com/view/users/1

에 jQuery를 UI 탭을 넣을 경우는

http://www.example.com/# 경로를 다중 선택과

같은 문제를 (로드 때문에 예를 들어, 첫 번째 탭은 홈 페이지의 내용을로드합니다 http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/) 만 선택하면 모두 확인 및 모두 선택 취소하면 홈페이지로 리디렉션됩니다.

<a href="#"> 

은 현재 페이지 js 함수를 호출하는 대신 http://www.example.com/#으로 이동합니다. http://www.example.com/view/users/1#

발견 유사한 티켓 :

http://bugs.jqueryui.com/ticket/4941

http://bugs.jqueryui.com/ticket/8637

+0

해결책이 없지만'base' 문서를 읽은 후에 jquery UI의 동작은 최신 브라우저의 동작과 같습니다. 문제는 마크 업과 jQeury가 그다지 다르지 않습니다. https://developer.mozilla.org/en-US/docs/HTML/Element/base –

답변

1
$.fn.__tabs = $.fn.tabs;$.fn.tabs = function (a, b, c, d, e, f) { 
var base = location.href.replace(/#.*$/, ''); 
$('ul>li>a[href^="#"]', this).each(function() { 
    var href = $(this).attr('href'); 
    $(this).attr('href', base + href); 
}); 
$(this).__tabs(a, b, c, d, e, f); 
}; 

이상한. 이것은 나를 위해 일했다. 탭.