0

我正在使用 jquery mobile 开发一个网站。在具有链接列表的页面中,我需要将查询字符串参数附加到指示页面大小的超链接(通过 javascript 获得)。所以,链接

/view/id:1

应该成为

/view/id:1?size={sizeInPixels}

标记的列表如下所示:

<li><a data-ajax="false" class="imagelink" href="/view/id:2840"><h2>text here</h2></a></li>
<li><a data-ajax="false" class="imagelink" href="/view/id:2841"><h2>text here</h2></a></li>

javascript是:

$(document).on('pageinit', '[data-role="page"]', function() {
        var newSize = $(window).height()*.8;
        newSize = parseInt(newSize); 
        $("a.imagelink[href!='ignore']").each(function() {
                this.href += '?size=' + newSize;
        });
});

第一次访问页面时,不附加size参数;如果页面被刷新,它工作正常。

当用户首次加载页面时,如何获取附加的大小参数?

4

1 回答 1

1

所以基本上你有一个链接到你想要提供大小信息的图像的列表,这样它们就可以在服务器端重新调整大小以考虑显示器的高度。为此,您运行脚本客户端来转换这些链接的 href 以包含此查询字符串参数。

恐怕您的脚本可能在链接进入 DOM 之前运行,导致您的脚本第一次失败(当仍然需要加载所有内容时)并第二次工作(因为它来自缓存)。

编辑:我删除了脚本(因为它是 jQuery 而不是 jQuery mobile)。看看 Stano 在评论中提供的以下 URL:$(document).ready 和 $(document).on('pageinit')http://jquerymobile.com/demos/1.2.0-alpha之间的区别.1/docs/api/events.html

于 2013-06-25T09:20:00.813 回答