我真的坚持这个,我的代码在Localhost上工作正常,但在Fasthosts服务器上没有,它似乎是对服务器上的文件夹的某种访问问题,这里是调试消息.
GET (http://reggarockaboogie.co.uk/images/gallery/fld01/) 403 (Forbidden)
k.cors.a.crossDomain.send @ jquery.min.js:4
n.extend.ajax @ jquery.min.js:4
Loadgallery @ gallery.html:95
(anonymous function) @ gallery.html:86
j @ jquery.min.js:2
k.fireWith @ jquery.min.js:2
n.extend.ready @ jquery.min.js:2
I @ jquery.min.js:2
这是我的代码,
< script >
$(document).ready(function() {
Loadgallery($('a[data-albumid]:first').data('albumid'));
$("a").click(function() {
var dir_path = $(this).data("albumid");
Loadgallery(dir_path);
return false;
});
});
function Loadgallery(dir_path) {
$.ajax({
url: dir_path,
success: function(data) {
$(".image-container").empty();
$(data).find("a:contains(.jpg), a:contains(.png), a:contains(.jpeg)").each(function() {
this.href.replace(window.location.host, "").replace("http:///", "");
var file = dir_path + $(this).text();
$(".image-container").append($("<a href='javascript:;' class='thumb' data-src='" + file + "'><img src='" + file + "' title='Click to enlarge' alt='#'/></a>"));
if ($(".image-container").children("a").length === 30) {
return false;
}
});
$(".image-container").append("<strong><p>Click on a thumb nail to show a larger image.</p></strong>");
$(".thumb").bind('click', function() {
var Popup = "<div class='bg'></div>" + "<div class='wrapper'><img src='<img src=''/>" + "<label href='javascript:;' class='prev-image'>«</label><label href='javascript:;' class='next-image'>»</label><a href='javascript:;' class='close' title='Close'>Close</a>";
var Img = $(this).attr("data-src");
$("body").prepend(Popup);
$(".bg").height($(window).height() * 4);
$(".wrapper img").attr("src", Img);
$(".prev-image").bind('click', function() {
var prev = $(".image-container").find("img[src='" + Img + "']").parent().prev('a').find("img").attr('src');
if (!prev || prev.length === 0)
return false;
else {
$(".wrapper img").attr("src", prev);
Img = prev;
}
});
$(".next-image").bind('click', function() {
var next = $(".image-container").find("img[src='" + Img + "']").parent().next('a').find("img").attr('src');
if (!next || next.length === 0)
return false;
else {
$(".wrapper img").attr("src", next);
Img = next;
}
});
$(".close").bind('click', function() {
$(this).siblings("img").attr("src", "")
.closest(".wrapper").remove();
$(".bg").remove();
});
});
}
});
}; < /script>
@import url(http://fonts.googleapis.com/css?family=Varela+Round);
#nav {
float: left;
width: 20px;
margin: 10px 10px 20px 0px;
}
#nav, #nav ul {
list-style: none;
padding: 0;
}
#nav a {
position: relative;
display: block;
width: 105px;
padding-left: 10px;
margin: 3px 0;
text-decoration: none;
font-family: Geneva, Arial, Helvetica, sans-serif;
font-variant: small-caps;
font-weight: bold;
color: #fff;
}
#nav a:link, #nav a:visited {
border-left: #00425E solid 10px;
color: #fff;
}
#nav a:hover, #nav a:active {
border-left-color: #fff;
background-color: #770709;
color: #fff;
}
#nav a#here {
border-left-color: #fff;
background-color: transparent;
color: #fff;
}
#nav ul {
margin-left: 20px;
}
#nav ul a {
width: 50px;
color: #fff;
}
.image-container {
padding-top: 50px;
}
.image-container img {
background-color: white;
border: 4px solid #444;
Box-shadow: 0 0 5px #222;
padding: 3px;
margin-top: 10px;
height: auto;
width: auto;
max-width: 100px;
max-height: 100px;
transition: all .7s ease-in-out;
}
.image-container img:hover {
border: 4px solid #888;
cursor: zoom-in;
}
.bg {
background-color: #333;
filter: alpha(opacity=70);
left: 0;
opacity: 0.7;
position: fixed;
top: 0;
width: 100%;
z-index: 1000;
}
.wrapper {
background-color: white;
border: 3px solid #444;
Box-shadow: 0 0 5px #222;
padding: 3px;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 1001;
}
.wrapper .next-image {
position: absolute;
font-size: 2.8em;
top: 50%;
color: #999;
width: 45px;
line-height: 30px;
text-align: center;
height: 45px;
border-radius: 100%;
opacity: 0.7;
filter: alpha(opacity=40); /* For IE8 and earlier */
right: 10px;
left: auto;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.wrapper .prev-image {
position: absolute;
font-size: 2.8em;
top: 50%;
color: #999;
width: 45px;
line-height: 30px;
text-align: center;
height: 45px;
border-radius: 100%;
opacity: 0.7;
filter: alpha(opacity=40); /* For IE8 and earlier */
left: 10px;
right: auto;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.wrapper .prev-image:hover {
border: 2px solid #ccc;
cursor: pointer;
opacity: 1;
}
.wrapper .next-image:hover {
border: 2px solid #ccc;
cursor: pointer;
opacity: 1;
}
.close {
background: transparent url(../gallery/close.png) no-repeat;
height: 32px;
position: absolute;
right: -16px;
text-indent: -9999px;
top: -16px;
width: 32px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1 /jquery.min.js"></script>
<div id="content-container" style="height: 600px;">
<div id="content" style="height: 600px;">
<div style="float: left; width: 200px;">
<h1> <span>The gallery</span> </h1>
<ul id="nav">
<li><a href="" id="here">gallery</a>
<ul>
<li><a href="#" data-albumid="images/gallery/fld01/">2014</a>
</li>
<li><a href="#" data-albumid="images/gallery/fld02/">2014</a>
</li>
<li><a href="#" data-albumid="images/gallery/fld03/">2014</a>
</li>
<li><a href="#" data-albumid="images/gallery/fld04/">2015</a>
</li>
<li><a href="#" data-albumid="images/gallery/fld05/">2015</a>
</li>
</ul>
</li>
<li><a href="../index.html">Back to home</a>
</li>
</ul>
</div>
<div class="image-container">
<strong><p>Select a menu option to display a list of thumb nails.</p></strong>
</div>
<!-- Script goes here -->
<div class="clear"></div>
</div>
</div>
解决方法:
最可能的原因是:
>禁用自动生成的目录列表(需要更改服务器配置,例如对于Apache:索引option).
>服务器上的目录具有文件权限设置,以便Web服务器软件运行的用户无法读取(通常随chmod更改)