首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹出对话框上的JQuery移动滑动页不能正常工作

弹出对话框上的JQuery移动滑动页不能正常工作
EN

Stack Overflow用户
提问于 2013-09-17 09:04:41
回答 1查看 770关注 0票数 0

我已经实现了一个透明的弹出对话框,它必须允许用户通过用户触摸向右或向左滑动。问题是当我向左或向右滑动时,它不是关闭最后一个对话框,而是创建一个新的对话框,因此,通过按“关闭”按钮,它会显示所有其他重复对话框。看起来,当我擦除右边或左边时,它会创建一个新对话框,而不是显示现有的对话框。另外,如何在其他滑动对话框中保持父对话框的透明性。

下面是对完整代码http://jsfiddle.net/EacrU/1/的修改

下面是我用来滑动的js代码

代码语言:javascript
复制
$( document ).on( "pageinit", "[data-role='dialog'].background-change", function() {


var page = "#" + $( this ).attr( "id" );
// Check if we did set the data-next attribute

if ( page=='#background-changer-1' ) 
{
    try{
    // Prefetch the next page
    $.mobile.loadPage("#background-changer-2" );
    }
    catch(exception)
    {
        alert(exception);
    }

  $( document ).on( "swipeleft", page, function() {
      $.mobile.changePage("#background-changer-2", { transition: "slide", reverse: false } );
  });

    // Navigate to next page when the "next" button is clicked
    $( ".control .next", page ).on( "click", function() {
        $.mobile.changePage( "#background-changer-2" , { transition: "slide" } );
    });
}

if ( page=='#background-changer-2' ) 
{
    try{
    // Prefetch the next page
    $.mobile.loadPage("#background-changer-1" );
    }
    catch(exception)
    {
        alert(exception);
    }

  $( document ).on( "swiperight", page, function() {
      $.mobile.changePage("#background-changer-1", { transition: "slide", reverse: true } );
  });

    // Navigate to next page when the "next" button is clicked
    $( ".control .prev", page ).on( "click", function() {
        $.mobile.changePage( "#background-changer-1" , { transition: "slide" } );
    });
}
}); 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-17 12:40:48

每次创建一个新对话框的原因是散列正在改变,有效地将每个页面(对话框)放入历史记录。有关更多信息,请参见文档。您可以通过选项防止哈希更改为changePage。但是,这会导致对话框上的“关闭”按钮出现问题,因为它会在浏览器历史记录中“返回”一页,从而产生关闭对话框的效果。

看起来,具有透明背景的黑客来自这个问题,但它使用前一页作为当前页面的背景,这在嵌套对话框时会造成麻烦。我鼓励您将jQuery移动升级到1.3.x,并查看jQuery Mobile1.3的PopUp小部件,它与对话框不同,其工作方式比dialog更符合您的要求。

作为一个侧面:在不可见的对话框之间滑动的行为对于分页来说并不是很直观的。也许可以考虑在单个对话框或弹出框中设置一个容器,这样就可以滑动显示选项的第二页。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18845601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档