문제
JS/JQuery를 사용하여 작은 코드를 작성하는 큰 문제가 있습니다 (이 중 어느 것이 문제를 일으키는 지 모르겠습니다). 어쨌든, 우리는 간다 :
$('#themePicker').unbind().click(function() {
var t = $(this);
modalwindow2(t, function() {
console.log(1);
}, function(w) {
console.log(w);
});
return false;
});
그리고 기능 자체 :
function modalwindow2(w, callbackOnSHow, callbackOnHide) {
if (typeof(callbackOnSHow) == 'function') {
callbackOnSHow.call();
}
// do some stuff //
$('form').submit(function() {
ajaxSubmit(function(data) {
if (typeof(callbackOnHide) == 'function') {
console.log('---------------');
console.log(data);
console.log('---------------');
callbackOnHide.call(data);
}
});
return false
});
}
기능이 호출됩니다 modalwindow2
모달이 표시되면 기능을 호출하고 모달이 숨겨 질 때 다른 기능을 원합니다.
첫 번째는 문제가 아닙니다.
두 번째는… 글쎄… 그냥 문제라고 가정 해 봅시다. 왜요?
두 번째 함수로 매개 변수를 전송하고 싶습니다. 패러멘터는 다른 jQuery 물건 (Ajax 동작, 분류 가능 등)과 유사한 Ajax 응답입니다.
나는 내가 충분히 분명하게 만들었 으면 좋겠다.
감사!
편집하다:
JQuery 1.1.2 (또는 1.1.3)를 사용하고 있으며 jQuery UI 업그레이드 또는 사용은 해결책이 아닙니다. 나는 의존성 (인터페이스 중 하나입니다)을 가지고 있으며 1.3 & UI 1.7로 업그레이드 할 시간이 충분하지 않습니다 (또는 동기 부여).
해결책
.submit에 오타가 있음을 알았습니다.$ ( 'form'). submti (function () {
그게 진입 오류 였나요?
편집 : 좋아요, 코드를보고 짧은 테스트를 한 후에는 이것 (말장난 용서) :
function modalwindow2(w, callbackOnShow, callbackOnHide) {
if(typeof callbackOnShow == 'function') {
callbackOnShow.call();
}
$('form').submit(function() {
if(typeof callbackOnHide == 'function') {
callbackOnHide.call(this, "second");
}
});
}
$(document).ready(function (){
$('#themePicker').click(function(){
var t=$(this);
modalwindow2(t, function() { alert("first"); }, function(x) { alert(x); });
return false;
});
});
Call () 문서에서 "this"가 놓친 것 같습니다. CallbackonHide.call (this, data)을 사용해보십시오.
그것이 더 잘 작동하는지 알려주세요!
다른 팁
나는 당신이하려는 일을 이해하지만, 닫기 콜백 함수에서 액세스 할 수 있도록 새로 생성 된 창을 저장해야합니다.
당신은보고 싶을 수도 있습니다 jQuery UI 대화 상자. 대화 상자 창 (모달 및 기타)에 대한 기본 기능을 제공하고 일부 콜백 구현을 처리합니다.