【问题标题】:Jquery mobile dialog scrollableJquery移动对话框可滚动
【发布时间】:2014-04-30 04:04:35
【问题描述】:

我在我的应用程序中使用 jquery mobile,我在选择时使用了data-native-menu="false"

<select id="chosenpro" data-theme="a" data-native-menu="false">
</select>

Jquery Mobile 打开一个带有这些类的 dialog 弹出窗口:

.ui-popup-container .ui-popup-active

然后我在其中设置了&lt;li&gt;s 的样式,使它们看起来像一个带有display:inline-block; 包括图像的网格。 但我希望这个弹出窗口可以滚动,因为它比我的页面高。

我知道这个答案,但无法适应我的情况: Setting max height of a dialog, then allow scrolling

你能帮忙吗?

http://jsfiddle.net/LzLEw/6/

谢谢

【问题讨论】:

  • 现在不一样了!正在努力。
  • 我想动态创建一个新的弹出窗口比修改 jQM 创建的弹出窗口更好。它需要一些时间来彻底测试它。 jsfiddle.net/Palestinian/LzLEw/7 应该是这样的。
  • 如果可能的话,我最好使用 jqm 弹出窗口,并让它在手机上可滚动。 (如果可能)

标签: jquery-mobile


【解决方案1】:

select 菜单和data-menu-native="false" 会根据屏幕的高度和选项数量转换为 popupdialog

弹出窗口/_dialog_ 包含select 菜单的id-dialog。例如。如果select 菜单的idfoo,则对话框id 变为foo-dialog

要操作该对话框,您需要首先检索其'id,然后绑定任何页面事件以进行任何更改。

进行此类修改的最佳事件是pageinit,因为它每个页面只触发一次。在检索到select 菜单的id 后,将pageinit 绑定到该对话框 以对包含select 菜单的选项data-role=content 进行更改。

您需要应用于data-role=content 的更改是heightoverflow-y

更新:你不需要覆盖overflow-y,设置一个固定的height就足够了。

/* when pageX which contains long selectmenu
   is being initialized, retrieve selectmenu's id */

$(document).on("pageinit", "#pageID", function () {

    /* selectmenu's id */
    var selectID = "#" + $("select", this)[0].id + "-dialog";

    /* dialog is being initialized,
       change height to half screen's height */
    $(document).on("pageinit", selectID, function () {
        var height = $.mobile.getScreenHeight() / 2;
        $(".ui-content", this).css({
            height: height
        });
    });
});

Demo - jQM 1.3.2 (1)

(1) 在 iPhone 5 上测试 - Safari 移动版

【讨论】:

  • 嗨@Omar,我编辑了我的问题,cmets 消失了……对不起,我不知道。是的,你是对的,它是一个弹出窗口而不是一个对话框
  • 对不起!所以新手错误。我应该避免编辑我的问题以避免删除 cmets 吗?如果我编辑了你的答案会有帮助吗(不确定......)?
  • @Louis 你可以用任何评论编辑你的问题。我不知道您的 cmets 是如何被删除的。关于你的问题,我已经删除了我的 cmets。
  • 我修改了您的 jsfiddle 以更好地表示问题:jsfiddle.net/LzLEw/6 当视口减小时(在手机上)我需要弹出窗口可滚动。
  • 提示:如果我使用这个 css:#chosenpro-menu { height: 200px !important; overflow-y:scroll; } 它可以在我的桌面浏览器上滚动,但不能在我的安卓浏览器上滚动。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-11
相关资源
最近更新 更多