我创建了一个非常基本的MVC php应用程序。我将来看到的问题是我在脚注中回应java脚本。
问题1 - 这不会被缓存吗?
所以我采用了解决方案来编写单个java脚本,然后包含函数。然后这些函数从PHP中获取参数,然后我只是回显这些函数。例如:
在: 在我的footer.php
<?php
$phpVariableSelector = "#toTop";
echo '$(document).scroll(function(){
var e=$(document).scrollTop();
//console.log("r",e);
if(e>=200)
{
$("'.$phpVariableSelector.'").addClass("in");
}
else
{
$("'.$phpVariableSelector.'").removeClass("in");
}
});
$("'.$phpVariableSelector.'").click( function(e) {
e.preventDefault(), $("html, body").animate({
scrollTop: $("body").offset().top
}, 500)
});'
?>
后:
在,app.js
<script>
function ScrollToTop($linkSelector)
{
$(document).scroll(function()
{
var e=$(document).scrollTop();
if(e>=200)//If scrolled 200
$($linkSelector).addClass("in");
else
$($linkSelector).removeClass("in");
});
$($linkSelector).click( function(e) {
e.preventDefault(), $("html, body").animate({
scrollTop: $("body").offset().top
}, 500);
});
}
</script>
然后在我的footer.php文件中:
<script src="app.js"></script>
<?php
echo 'ScrollToTop("#toTop")';
?>
问题2 - 这是正确的使用方法还是有更优雅的解决方案?
答案 0 :(得分:0)
对于第一个问题:你是对的,它没有被缓存
对于第二个问题,这就是你应该如何做到的:
<script src="app.js"></script>
<script>
<?php
echo 'ScrollToTop("#toTop")';
?>
</script>
然而,看起来你总会回显相同的选择器#toTop
,如果是这种情况,那么只需在javascript中执行它,因为它永远不会改变,除非选择器在页面之间不同< / p>