문제

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 대화 상자. 대화 상자 창 (모달 및 기타)에 대한 기본 기능을 제공하고 일부 콜백 구현을 처리합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top