1

我正在尝试在单击按钮时使用 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,它就无法正确显示.. 帮助?:)

4

2 回答 2

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");

我希望这能帮到您。问候,

于 2013-08-02T13:59:53.140 回答
0

smarty 是 PHP 的服务器端模板引擎。您可以使用 AJAX 调用文件并让 php/smarty 处理转换为 html 或复制文件并将其转换为 javascript 以便它与浏览器一起使用。

于 2013-06-16T00:21:23.357 回答