jquery simplemodal无法调用另一个函数

时间:2010-11-16 12:24:43

标签: jquery simplemodal jquery-callback

在我的模态窗口中,我有一个“继续”按钮。虽然我可以通过使用simplemodal-close类分配按钮来关闭模式,但我无法调用我的函数。我已经从网站上的简单演示中汇总了这段代码。

按钮:

<a href="#" class="simplemodal-close" onClick="closePopup()"><img src="bell/images/button_understand.gif" width="116" height="49"></a>

javascript:

$(document).ready(function() {
    function showPopups(){
        var e = document.getElementById('hirpopup');
        $('#hirpopup').modal({
        opacity:80,
        overlayCss: {backgroundColor:"#fff"}
        });
    e.style.display = 'block';
    return false;
    }

    function closePopup(){
        var e = document.getElementById('hirpopup');
        e.style.display = 'none';

        confirm(function () {
        sameWindow(this.form);
        });
    }

    function confirm(callback) {
        $('#hirpopup').modal({
            onShow: function () {
                var modal = this;
                // call the callback
                if ($.isFunction(callback)) {
                    callback.apply();
                }
            }
        });
    }
});

任何想法,因为我对jQuery很陌生,对simplemodal来说是全新的。

编辑:我已经按照以下方式更新了我的javascript,但它还没有完成我的功能。我得到了1的警报,以及包含该功能的警报,但没有别的。

$(document).ready(function(){
    $("#close").css("cursor", "pointer"); 

    $('#next').click(function(){
        var e = document.getElementById('hirpopup');
        $('#hirpopup').modal({
            opacity:80,
            overlayCss: {backgroundColor:"#fff"}
        });
        e.style.display = 'block';
        return false;
    });

    $('#close').click(function(){
        var e = document.getElementById('hirpopup');
        e.style.display = 'none';

        confirm(function () {
            sameWindow(this.form);
        });
    });
});


function confirm(callback) {
alert("1");
alert(callback);
    $('#hirpopup').modal({
        onShow: function () {
            alert("2");
            var modal = this;
            // call the callback
            if ($.isFunction(callback)) {
                alert("3");
                callback.apply();
            }
        }
    });
}

2 个答案:

答案 0 :(得分:1)

编辑:您可以尝试在document.ready中放置确认方法。这可能是一个问题

你不能在你自己的函数中有$(document).ready,但它应该是root方法。还使用jQuery事件绑定

    $(document).ready(function() {

$('.simplemodal-close').click({

        var e = document.getElementById('hirpopup');
        e.style.display = 'none';

        confirm(function () {
            sameWindow(this.form);
        });

});

});

答案 1 :(得分:0)

你的功能中不能有$(document).ready(function(){})。它只在页面加载时自动执行一次。

改为写

function closePopup(){

        var e = document.getElementById('hirpopup');
        e.style.display = 'none';

        confirm(function () {
            sameWindow(this.form);
        });

}