나는 thickbox를 사용하여 HTML을로드합니다. 이 html에는 데이터베이스에 물건을 추가해야하는 양식이 있습니다. 나는 메인 html (하나는 내가 thickbox에서로드)에 선택 상자가 있습니다. 내가 원하는 것은 thickbox에서 닫기 버튼을 누르면 선택 상자가 방금 데이터베이스에 추가 한 항목으로 업데이트되어야한다는 것입니다. thickbox close 메서드를 수정하고 선택 상자를 업데이트하는 내 메서드를 호출 할 생각 이었지만 thickbox는 충돌 할 때 충돌이 발생합니다. 어떤 힌트도 크게 감사 할 것입니다.thickbox 닫을 때 부모 HTML에서 메서드를 호출하는 데 도움이
0
A
답변
0
Firebug를 사용하여 thickbox를 검사하면 thickbox 모달이 실제로 기본 페이지의 div임을 알 수 있습니다. thickbox에서 기본 페이지의 모든 기능을 호출 할 수 있습니다.
예를 들어,이 코드는 '납치'는 Thickbox와 가까운 링크 및 추가 거즈를 수행합니다
$("#TB_closeWindowButton").click(function(){
tb_remove();
//do extra stuffs, such as get a new select
var select_parent = $('#theselect').parent();
$.get('new_select.php',
{},
function(data){
select_parent.html(data);
});
});
는 옆에있는 Thickbox와 가까운 링크를 납치, 당신은 또한 Thickbox와 내부에 링크에 코드를 넣을 수 있습니다. 사용자 정의 코드 전후에 thickbox 창을 닫으려면
tb_remove()
으로 전화하십시오. 양식 제출과 관련된 경우
jQuery form plugins을 사용하여 AJAX를 통해 양식을 제출 한 다음 성공적인 양식 제출시 닫기 기능을 실행하십시오.
선택 상자 업데이트에 대해서는 모든 브라우저에서 실행되도록하는 방법에 대한 내 대답 here을 참조하십시오.
함수가 항상 호출되도록하려면 modal
모드를 사용하도록 thickbox를 설정하면 이스케이프 키가 비활성화됩니다. 기본적으로 두꺼운 상자 표시 줄은 표시되지 않으므로 닫기 코드를 넣는 것을 잊지 마십시오.
8
전체 tb_remove 함수를 도용 할 수도 있습니다. 이것은 링크 클릭뿐만 아니라 ESC 키 누르기도 캡처한다는 것을 의미합니다.
이것은 원래의 제거 메소드를 인라인으로 바꾸고 사용자 고유의 제거 메소드로 대체하는 것을 의미합니다.
<script type="text/javascript">
var original_tb_remove = tb_remove;
tb_remove = function() {
**** insert your coolness here ****
original_tb_remove();
return false; }
</script>
참고 : 최대 성공을 위해 thickbox가 처음 호출되기 전에이 작업을 수행해야합니다.
두꺼운 상자가 꽤 오래되어 더 이상 유지 관리되지 않습니다. 선택에 따라 사용하고 있습니까? 아니면 이전 응용 프로그램에서 사용하도록 강요 받았습니까? 어쨌든, 양식 제출이 반환 될 때 "선택"목록을 업데이트하고 싶지 않으십니까? 어쨌든 양식을 어떻게 제출합니까? – Pointy
선택에 의해 사용하고 있습니다. 다른 대안을 알고 있다면 나는 제안에 개방되어있다. – user253530
thickbox 홈 페이지에는 대안이 나열되어 있습니다. http://jquery.com/demo/thickbox/ – Pointy