Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
禁用fancyfox弹出窗口外侧的everty javascript事件_Javascript_Jquery_Popup_Fancybox - Fatal编程技术网

禁用fancyfox弹出窗口外侧的everty javascript事件

禁用fancyfox弹出窗口外侧的everty javascript事件,javascript,jquery,popup,fancybox,Javascript,Jquery,Popup,Fancybox,等待一段时间后,我打开fancybox,等待登录用户的会话超时。弹出窗口将禁用,用户将自动注销,但如果我在弹出窗口外单击,计数器时间将设置为0,因此不会注销 window.idleTime = 0; jQuery(document).ready(function() { //Increment the idle time counter every minute. var idleInterval = setInterval(timerIncrement, 60000);

等待一段时间后,我打开fancybox,等待登录用户的会话超时。弹出窗口将禁用,用户将自动注销,但如果我在弹出窗口外单击,计数器时间将设置为0,因此不会注销

window.idleTime = 0;
jQuery(document).ready(function() {

    //Increment the idle time counter every minute.
    var idleInterval = setInterval(timerIncrement, 60000); 
    //Zero the idle timer on mouse movement.
    jQuery(this).mousemove(function (e) { 
        idleTime = 0;
        //alert(idleTime);
    });
    jQuery(this).keypress(function (e) {
        idleTime = 0;
        //alert(idleTime);
    });

    jQuery(".classname").live("click", function(){
        //alert('');
        idleTime = 0;
    })  

});
function timerIncrement() {
    var timedouturl = "logout.php?sTimeOut=1";
    //alert('Calling..');
    idleTime = idleTime + 1;
    if (idleTime > 2) { // 1 minutes
        //alert('Time Out =>'+idleTime);
        //window.location.reload();
        jQuery.fancybox({
        'type'      : 'ajax',
        'href'      : 'popup.php',
        'autoSize'  : false,
        'width'     : 450,
        'height'    : 'auto',
        afterLoad   : function(){
            //alert("IdleTime :"+idleTime);
           setTimeout( function() {
                                    jQuery.fancybox.close();
                                    //alert("LastIdleTime :"+ window.idleTime);
                                    if (window.idleTime > 2){
                                        window.location.href = timedouturl;
                                    }
                                    },60000); 

          }
        });
    }
}
当弹出窗口在弹出窗口之外打开时,我想阻止每个js事件。有什么想法吗

这里


用于单击fancybox上的“确定”按钮。

您可以使用一个布尔值来跟踪弹出窗口打开的时间,然后仅在弹出窗口未打开时重置超时:

window.idleTime = 0;
var timeoutPopupOpen = false;
jQuery(document).ready(function() {

    //Increment the idle time counter every minute.
    var idleInterval = setInterval(timerIncrement, 60000); 
    //Zero the idle timer on mouse movement.
    jQuery(this).mousemove(function (e) {
        if (!timeoutPopupOpen) {
            idleTime = 0;
        }
        //alert(idleTime);
    });
    jQuery(this).keypress(function (e) {
        if (!timeoutPopupOpen) {
            idleTime = 0;
        }
        //alert(idleTime);
    });

    jQuery(".classname").live("click", function(){
        if (!timeoutPopupOpen) {
            idleTime = 0;
        }
        //alert('');
    })  

});
function timerIncrement() {
    var timedouturl = "logout.php?sTimeOut=1";
    //alert('Calling..');
    idleTime = idleTime + 1;
    if (idleTime > 2) { // 1 minutes
        //alert('Time Out =>'+idleTime);
        //window.location.reload();
        timeoutPopupOpen = true
        jQuery.fancybox({
            'type'      : 'ajax',
            'href'      : 'popup.php',
            'autoSize'  : false,
            'width'     : 450,
            'height'    : 'auto',
            afterClose  : function(){
                timeoutPopupOpen = false;
            },
            afterLoad   : function(){
                //alert("IdleTime :"+idleTime);
               setTimeout( function() {
                                    jQuery.fancybox.close();
                                    //alert("LastIdleTime :"+ window.idleTime);
                                    if (window.idleTime > 2){
                                        window.location.href = timedouturl;
                                    }
                                    },60000); 

            }
        });
    }
}

我不确定您使用的是哪个Fancybox,因为我似乎无法在or中找到后加载选项,但实际上,只要跟踪某人何时启动和关闭fancybox,您就知道是否应该取消超时。

afterLoad是一个回调,因此您可以在callbacks选项卡fancybox v2.xi下找到它。如果fancybox打开并且访问者移动鼠标,是否要将空闲时间重置为0?所以没有注销。。。除非他们在fancybox打开时等待1分钟?顺便说一句,不推荐使用live,否则使用on需要jQuery v1.7+
window.idleTime = 0;
var timeoutPopupOpen = false;
jQuery(document).ready(function() {

    //Increment the idle time counter every minute.
    var idleInterval = setInterval(timerIncrement, 60000); 
    //Zero the idle timer on mouse movement.
    jQuery(this).mousemove(function (e) {
        if (!timeoutPopupOpen) {
            idleTime = 0;
        }
        //alert(idleTime);
    });
    jQuery(this).keypress(function (e) {
        if (!timeoutPopupOpen) {
            idleTime = 0;
        }
        //alert(idleTime);
    });

    jQuery(".classname").live("click", function(){
        if (!timeoutPopupOpen) {
            idleTime = 0;
        }
        //alert('');
    })  

});
function timerIncrement() {
    var timedouturl = "logout.php?sTimeOut=1";
    //alert('Calling..');
    idleTime = idleTime + 1;
    if (idleTime > 2) { // 1 minutes
        //alert('Time Out =>'+idleTime);
        //window.location.reload();
        timeoutPopupOpen = true
        jQuery.fancybox({
            'type'      : 'ajax',
            'href'      : 'popup.php',
            'autoSize'  : false,
            'width'     : 450,
            'height'    : 'auto',
            afterClose  : function(){
                timeoutPopupOpen = false;
            },
            afterLoad   : function(){
                //alert("IdleTime :"+idleTime);
               setTimeout( function() {
                                    jQuery.fancybox.close();
                                    //alert("LastIdleTime :"+ window.idleTime);
                                    if (window.idleTime > 2){
                                        window.location.href = timedouturl;
                                    }
                                    },60000); 

            }
        });
    }
}