我试图在点击按钮时使用Javascript加载一些代码。问题是某些代码只是显示而不是执行。
这是我正在尝试加载的文件reload.tpl:
<div class="online-players">
{% for player in players_online %}
<div class="online-player-heads">
<a href="?page=player&name={{ player.getName }}">
{{ player.getPlayerHead(64, 'img-polaroid', true)|raw }}
</a>
</div>
{% else %}
<div class='force-center'><em>{{ 'no_players_online'|trans }}</em></div>
{% endfor %}
</div>
我用它来加载代码:
<script>
$(document).ready(function() {
$('#button2').click(function() {
$('.online-players').fadeOut('slow', function() {
$(this).load('templates/default/views/reload.tpl', function() {
$(this).fadeIn("slow");
});
});
});
});
</script>
预期:
http://i.stack.imgur.com/CRMGn.png
实际发生了什么:
http://i.stack.imgur.com/8UvG7.png
任何人都知道为什么这样做?当我不想通过脚本加载时,它工作得很好。但是一旦我尝试.load,它就不会显示正确.. 救命? :)
答案 0 :(得分:1)
如果您没有亲自发现,这就是您需要做的事情:
将jquery加载的目标页面更改为php文件(为了正确的服务器端句柄):
<script>
$(document).ready(function() {
$('#button2').click(function() {
$('.online-players').fadeOut('slow', function() {
$(this).load('reload.php', function() {
$(this).fadeIn("slow");
});
});
});
});
</script>
在reload.php文件中:
require_once("./libs/Smarty.class.php");
$smarty = new Smarty;
$smarty->display("templates/default/views/reload.tpl");
我希望这会对你有所帮助。 的问候,
答案 1 :(得分:0)
smarty是PHP的服务器端模板引擎。您可以使用AJAX来调用文件,让php / smarty处理转换为html或制作文件的副本并将其转换为javascript,以便它可以与浏览器一起使用。