我在<a>
标记中有两个缩略图,点击另一个图像(主图像)src
将更改为<a> hrefs
标记以显示完整图像。
该功能有效,但问题是当我跟踪功能时它会相对于点击次数重复。
如果第一次单击它运行一次,如果它第二次单击它运行两次,依此类推。这是我的代码:
<div class="wraptocenter"><img alt="" src="" id="myim" /></div>
<a href="images/cam1.jpg" class="changemimg"> <img alt="" src="images/10.jpg" /></a>
<a href="images/cam.jpg" class="changemimg" ><img alt="" src="images/9.jpg" /></a>
<img src="" id="hiddenimg" style="display:none" />
$(document).ready(function () {
$(".changemimg").bind('click', set);
function set() {
$("#myim").attr("src", "images/indicators.gif");
var path = $(this).attr("href")
$("#hiddenimg").attr("src", path);
$("#hiddenimg").load(function () { alert('hi'); $("#myim").attr("src", path); });
return false;
}
});
提前感谢任何建议!
答案 0 :(得分:1)
每次单击anchor元素时,都会设置“hiddenimg”元素上的Load事件处理程序。因此,每次单击后,Load事件处理程序的数量都会增加一个。 以下代码应解决您的问题
$(document).ready(function () {
var path;
$(".changemimg").bind('click', set);
$("#hiddenimg").load(function () {
alert('hi');
$("#myim").attr("src", path);
});
function set() {
$("#myim").attr("src", "images/Calendaricon.gif");
path = $(this).attr("href");
$("#hiddenimg").attr("src", path);
$("#hiddenimg").attr("style", "display:block");
return false;
}
});
答案 1 :(得分:0)
尝试:
$(document).ready(function () {
$(".changemimg").bind('click', set);
function set(e) {
e.preventDefault();
$("#myim").attr("src", "images/indicators.gif");
var path = $(this).attr("href");
var myimg = new Image();
$(myimg)
.load(function(){
alert('hi');
$('#myim').attr('src', path);
})
.attr('src', path);
}
});
这是demo