你好,我正在尝试创建一个在线照片集。因此,这个想法是有一个图片和两个元素与onclick事件加载专辑中的下一个和前一个图像。 我为此创建了一个函数,但它只能使用一次。如果按下上一个或下一个按钮,则会执行onclick,但onclick属性不会更改,并且一个简单的警报框会告诉我该代码不会再次执行。jquery change onclick
我很抱歉在我的代码foto中的荷兰语应该是照片!
我的HTML看起来像这样。
<div id="fotolarge">
<span class="arrow arrowright"></span>
<span class="arrow arrowleft"></span>
<span id="fotoloading"></span>
<img id="foto"/>
</div>
我的JavaScript看起来像这样
function loadPhoto(src){
$("#fotoloading").css("z-index","3");
$currentIndex = jQuery.inArray(src, $photoArray);
//next image
$nextIndex = $currentIndex + 1;
if($nextIndex < $photoArrayLength){
$(".arrowright").attr("onclick", "loadPhoto('" + $photoArray[$nextIndex] + "')");
}
else{
$(".arrowright").attr("onclick", "loadPhoto('" + $photoArray[0] + "')");
}
//previous image
$previousIndex = $currentIndex - 1;
if($previousIndex >= 0){
$(".arrowleft").attr("onclick", "loadPhoto('" + $photoArray[$previousIndex] + "')");
}
else{
$(".arrowleft").attr("onclick", "loadPhoto('" + $photoArray[$photoArrayLength -1] + "')");
}
var loader = new ImageLoader(src);
loader.loadEvent = function(url, image){
$("#fotoloading").css("z-index","2");
$("#foto").replaceWith(image);
$("#foto").css("display", "block");
calcmiddle();
}
loader.load();
}
变量$ photoArray和$ photoArrayLength是全局变量。 $ photArray包含图像来源的列表。 Imageloader不是问题,因为不工作或者是部分注释掉。
我希望有人有一个如何解决这个问题的想法。我已经尝试过这样的jquery.click()
$(".arrowright").click(function(){
loadPhoto($photoArray[0]);
});
然后它的工作部分。它在执行loadPhoto()的无限循环中创建。
对于它的价值,已经有很好的插件可以为你做这项工作。对于幻灯片:http://jquery.malsup.com/cycle/对于轮播:http://www.gmarwaha.com/jquery/jcarousellite/ – Blazemonger
你确定$ currentIndex设置为某些东西? – Kreker
你可以给我完整的代码与$ photoArray,$ photoArrayLength和ImageLoader,以便我可以做一个完整的工作示例? – Usman