我在一个使用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参数;如果刷新页面,则可以正常工作。
当用户第一次加载页面时,如何获得附加的大小参数?
发布于 2013-06-25 09:20:01
基本上,您有一个指向图像的链接列表,您希望为这些图像提供大小信息,以便它们可以根据显示的高度重新调整服务器端的大小。要实现这一点,您可以运行一个脚本客户端来转换这些链接的href,以包含此querystring参数。
我担心您的脚本可能在链接在DOM中之前运行,导致您的脚本第一次失败(当所有内容仍需要加载时),第二次运行(因为它来自缓存)。
编辑:我删除了脚本(因为它是jQuery而不是jQuery mobile)。看看Stano在评论中提供的以下URL:Difference between $(document).ready and $(document).on('pageinit')和http://jquerymobile.com/demos/1.2.0-alpha.1/docs/api/events.html
https://stackoverflow.com/questions/17291945
复制