通过Ajax加载tpl文件(Drupal 7)

时间:2017-09-11 16:05:13

标签: javascript jquery ajax drupal-7 load

我正在使用Drupal 7而我正在尝试加载ajax tpl文件。

我有一个包含几张照片缩略图的页面,当我点击一张照片时,它必须出现在前景中(包含PHP中的信息和功能)

网站的所有页面通常都会加载js和css文件。

所以我决定创建一个hook_menu然后在回调函数中通过hook_theme返回一个主题,最后我使用ajax来显示它。 (见我的帖子:Drupal 7 - get variables from hook_theme

1。这是我的缩略图:

<div class="thisPhoto">
    <a href="javascript:;">
        <img src='<?php print image_style_url("pict_small", $content["field_photo"]); ?>'
            data-nid = <?php print $content['nid'] ?>
            data-logged-in = <?php print $logged_in ?> />
    </a>
</div>

2。这是我在JS中的方法

$("#photos-block").on('click', ".thisPhoto", function(e) {
    var nid = $(this).find("img").attr("data-nid");
    var logged_in = $(this).find("img").attr("data-logged-in");

    $("#main-content").load("http://example.org/example/fancybox-photos/"+nid+"/"+logged_in, function(responseTxt, statusTxt, xhr) {
        if(statusTxt == "success")
            console.log("External content loaded successfully!");
        if(statusTxt == "error")
            alert("Error: " + xhr.status + ": " + xhr.statusText);
    });
});

当我第一次点击所有我的JS文件都加载到ajax和我的tpl中但问题是在第二次单击时我的tpl立即加载但是所有这些脚本文件都被加载两次然后在第三次三次等....

我不明白为什么会这样做。

如果有人有想法?

0 个答案:

没有答案