事件之前激发的JQuery回调函数

事件之前激发的JQuery回调函数,jquery,jquery-mobile,Jquery,Jquery Mobile,我不知道我在这里是否犯了一些愚蠢的错误,但我面临着在实际事件发生之前在page init上启动回调函数的问题。 这是密码 $(document).on("pageinit",function(){ $("#discInvitePopUp").popup({ transition: "slidedown", history: false, afterclose: function( event, ui ) { activeD

我不知道我在这里是否犯了一些愚蠢的错误,但我面临着在实际事件发生之前在page init上启动回调函数的问题。 这是密码

$(document).on("pageinit",function(){
$("#discInvitePopUp").popup({
        transition: "slidedown",
        history: false,
        afterclose: function( event, ui ) {

            activeDiscInviteCloseHandler();
        },
        afteropen: function( event, ui ) {
            openDiscFrmInvite();
        }
    });

}
以下是回调函数:

function activeDiscInviteCloseHandler(){
    //some code
    //curDiscInv set
    alert("evt");
    $.post("/ajaxReq/user_action.php", {
        unsetInvite:JSON.stringify(curDiscInv)
    }, function(data){


    });

}
function openDiscFrmInvite(){
   //some code
}
这里的问题是

activeDiscInviteCloseHandler()

一旦pageinit事件被触发,函数就会被调用,结果它会将post数据发送到不需要的服务器

任何可能的解决方案来避免这种情况。

而不是

$(document).on("pageinit",function()...
试一试


jQuery(“.selector”)。在(“pageinit”,function(event){…})上,我们建议绑定到此事件,而不是DOM ready(),因为无论是直接加载页面还是将内容作为Ajax导航系统的一部分拉入另一个页面,这都会起作用。这似乎是一项新功能,一位用户在jQuery移动论坛上也注意到了类似的问题。不要忽视jQuery mobile本身可能遇到的错误。您需要
setTimeout
打开弹出窗口。它在pageinit上触发两次,这是由于页面转换期间发生事件以及浏览器造成的延迟。你能给我们完整的代码吗,也许jquery手机会在页面初始化时触发关闭,这样弹出窗口就不会显示了?
$(document).ready(function()...