0

我正在考虑做一个动态的图片库,我正在寻找一个与 facebook 类似但使用 url 哈希的解决方案。

我想收到有关这种类型的调用 ajax 的详细信息,以便在不刷新页面的情况下动态获取信息,这是我正在寻找的正确方法吗?旧浏览器有问题?

<html>
    <head>
    //jquery.js
    </head>
<body>
    <!-- #nameimage is the name of the big image that will be loaded, 
    so this hash will be used for the call ajax. -->
    <a href="#nameimage1"><img src="url-thumb-image1"></a>
    <a href="#nameimage2"><img src="url-thumb-image2"></a>
    <a href="#nameimage3"><img src="url-thumb-image3"></a>
    <a href="#nameimage4"><img src="url-thumb-image4"></a>

    <div class="image-big"></div>

</body>
</html>

jQuery

$(document).on('click','a', function(){
         var hash = window.location.hash; // nameimage

         // very simple ajax
         BASE_URL = 'http://localhost/';
         $.ajax({
                type: "POST",
                url: BASE_URL + 'get_image',
                data: "name_image=" + hash,
                success: function(result) {

                    // print result on div
                    $('.image-big').html(result);

                },
                error: function(){
                    alert('Error on ajax call');
                }
            }); 

});

PHP

<?php
    $name_image = $_POST['name_image'];
    $path = 'main_folder/image/';
    echo '<img src="'.$path.$name_image.'.jpg">';

    // and i can cache the results
?>
4

2 回答 2

1

var hash = window.location.hash; // nameimage 需要查看锚标记的 href,此时窗口位置哈希尚未更新。

var hash = $(this).attr("href");
于 2013-11-14T21:16:07.250 回答
0

我认为您需要删除哈希:

var hash = window.location.hash.substr(1);

但也许那个时候还没有定义散列。所以最好使用

$(document).on('click','a', function(e){ 
    var hash = e.currentTarget.href.substr(1)
    ...
于 2013-11-14T21:24:59.567 回答