页面头部引用的脚本和样式在通过 Ajax 加载页面时不会产生任何影响,多页面页面模板就是这种情况,但如果通过 HTTP 正常请求页面,它们将执行。
在编写 jQuery Mobile 网站脚本时,需要考虑这两种情况。通过 Ajax 请求时忽略页面头部的原因是重新执行相同 JavaScript 的可能性非常高(在站点的每个页面中引用相同的脚本很常见)。
由于尝试解决该问题的复杂性,执行特定页面脚本的任务留给个人,并假设每个浏览会话只执行一次头部脚本。
解决方法是每次页面显示时调用插件。值得注意的是,在每个页面调用插件时都必须给出一个新的 ID 或类。即 $('#FittetxtA')。对于第一页,$('#FittetxtB') 对于第二页,依此类推。下面的方法是我用于缩放插件并按预期工作的方法。如果没有每个页面的“pageshow”功能,我无法放大任何页面,只能放大第一页。
例子
<script>
$( '#page1' ).on( 'pageshow',function(event){
/// call to pluggings ///
$("#Fit_a").fitText(1.2, { minFontSize: '20px', maxFontSize: '40px' });
FastClick.attach(document.body);
});
$( '#page2' ).on( 'pageshow',function(event){
/// call to pluggings ///
$("#Fit_b").fitText(1.2, { minFontSize: '20px', maxFontSize: '40px' });
FastClick.attach(document.body);
});
$( '#page3' ).on( 'pageshow',function(event){
/// call to plugging ///
$("#Fit_c").fitText(1.2, { minFontSize: '20px', maxFontSize: '40px' });
FastClick.attach(document.body);
});
/// etc ///
</script>
我不能 100% 确定这是调用 Fast click 的最佳方式,因为当我查看 Github 页面时,我没有看到很多关于调用此插件的不同示例