Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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
Javascript 防止用户在jQuery Mobile中ajax加载页面时单击其他位置_Javascript_Jquery_Jquery Mobile - Fatal编程技术网

Javascript 防止用户在jQuery Mobile中ajax加载页面时单击其他位置

Javascript 防止用户在jQuery Mobile中ajax加载页面时单击其他位置,javascript,jquery,jquery-mobile,Javascript,Jquery,Jquery Mobile,我正在使用jQuery Mobile为PC和平板电脑创建一个web应用程序 我正在使用jquerymobile的Ajax导航特性 所以,如果用户单击一个链接,加载微调器就会显示。但当JQM试图加载该页面时,用户可以单击另一个链接。在这种情况下,在完全加载第一个页面之后,JQM加载第二个页面,然后转到第二个页面 现在,我想在ajax导航工作时禁用所有功能。所有功能都意味着,不应单击其他链接,不应调用其他javascriptclick函数,不能滚动,以及 此外,每个ajax导航都应该有一个超时 如何

我正在使用jQuery Mobile为PC和平板电脑创建一个web应用程序

我正在使用jquerymobile的Ajax导航特性

所以,如果用户单击一个链接,加载微调器就会显示。但当JQM试图加载该页面时,用户可以单击另一个链接。在这种情况下,在完全加载第一个页面之后,JQM加载第二个页面,然后转到第二个页面

现在,我想在ajax导航工作时禁用所有功能。所有功能都意味着,不应单击其他链接,不应调用其他javascript
click
函数,不能滚动,以及

此外,每个ajax导航都应该有一个超时


如何做到这一点?

jQM有几个不同的事件,当新页面加载到DOM中后会触发这些事件。单击链接后,为什么不暂时停用所有链接,直到转换完成

$('body').on('click', 'a', function() {
    $('body').on('click', 'a', function() {
        return false;
    }); 
    $(document).bind('pagechange', function() { 
        $('body').off('click', 'a'); 
    }); 
});

我使用了上面的
pagechange
事件,但是还有一些其他事件可能更适合您的目的

jQM有几个不同的事件,当一个新页面完成加载到DOM中时会触发这些事件。单击链接后,为什么不暂时停用所有链接,直到转换完成

$('body').on('click', 'a', function() {
    $('body').on('click', 'a', function() {
        return false;
    }); 
    $(document).bind('pagechange', function() { 
        $('body').off('click', 'a'); 
    }); 
});

我使用了上面的
pagechange
事件,但是还有一些其他事件可能更适合您的目的

也许我应该在屏幕上加一个透明的覆盖层,但是怎么做呢?在哪里?你说的没错。这是一个漂亮的插件,可以做到这一点@VDP但是如何用这个插件替换jQuery移动默认加载微调器?我们能检测加载微调器何时显示和隐藏吗?如果是这样,我们可以简单地在页面上放置一个
div
position:absolute
,您可以防止加载消息()。只需阻止消息并侦听“pagebeforeload”即可在页面上设置div。(也许你必须倾听div上的点击事件并防止冒泡)也许我应该在屏幕上放置一个透明的覆盖层,但是如何?在哪里?你说的没错。这是一个漂亮的插件,可以做到这一点@VDP但是如何用这个插件替换jQuery移动默认加载微调器?我们能检测加载微调器何时显示和隐藏吗?如果是这样,我们可以简单地在页面上放置一个
div
position:absolute
,您可以防止加载消息()。只需阻止消息并侦听“pagebeforeload”即可在页面上设置div。(也许你必须监听div上的click事件并防止冒泡)首先,有些按钮不使用
标记,它们由javascript
click
事件处理。接下来,这可能太慢了,尤其是在平板电脑上。。。(例如,Mobile Safari的Javascript引擎太慢)首先,有些按钮没有使用
标记,它们是通过Javascript
点击事件处理的。接下来,这可能太慢了,尤其是在平板电脑上。。。(例如,Mobile Safari的Javascript引擎太慢)