相对于jQuery移动对话框加载微调器

时间:2013-07-31 18:37:01

标签: jquery-mobile dialog css-position

是否可以在jQuery移动对话框中设置一个由$.mobile.loading调用的加载微调器,并将其相对置于该对话框中?

1 个答案:

答案 0 :(得分:0)

这不可能直接,但你可以用hacky方式做到:

  1. 在对话框的pageinit上,使用<div/>类克隆.ui-loader

    var loader = $(".ui-loader").clone();
    
  2. 然后将其添加到我们的对话框中,如下所示:

    $page.find('[data-role="content"]').html(loader); //$page is the dialog
    
  3. 创建一个名为.ui-loader-altered的类,并为其添加position:relative。将类添加到内部对话框中的加载器。这将使装载机保持在对话框内。

    $page.find(".ui-loader").addClass("ui-loader-altered");
    
  4. 既然您已经有了对话框,为什么不显示它?

    $page.find(".ui-loader-altered").show();
    
  5. 完整代码:

    $(document).on("pageinit", "#second", function () {
        $page = $(this);
        $(this).on("click", "#show", function () {
            //clone
            var loader = $(".ui-loader").clone();
            //add to dialog
            $page.find('[data-role="content"]').html(loader);
            //add class which makes dialog position relative to div
            $page.find(".ui-loader").addClass("ui-loader-altered");
            //show it up
            $page.find(".ui-loader-altered").show();
        })
    
    });
    

    演示:http://jsfiddle.net/hungerpain/P2XJt/3/