我无法使用以下功能。
单击.image类时,将替换3个div(gallerytext,image和thumbset)中的内容。我一直试图让它工作几天,我无法弄清楚我做错了什么。
我的代码:
// Init load
$(document).ready(function() {
var $doc = $(document.body);
var text = $('#gallerytext1').html(); //blank divs are filled with content on page load
$('#gallerytext').html(text);
var thumbset = $('#thumbset1').html();
$('#thumbset').html(thumbset);
$('#image').html('<img src="images/edwards1.jpg" border="0"/>');
//click handler
$doc.on("click",".image",function(){
var image=$(".image").attr("rel");
var imid=$(".image").attr("data");
var text=$('#gallerytext'+imid).html();
var thumbset=('#thumbset'+imid).html();
$('#debug').html(imid);
$('#gallerytext').fadeIn('slow');
$('#gallerytext').html(text);
$('#thumbset').fadeIn('slow');
$('#thumbset').html(thumbset);
$('#image').hide();
$('#image').fadeIn('slow');
$('#image').html('<img src="' + image + '"/>');
return false;
});
});
初始内容加载得很好,但我无法让点击处理程序工作。具有.image类的对象的格式如下:
<a href="#" rel="images/edwards2.jpg" data="1" class="image image2"><img src="images/edwardsthumb2.jpg" class="thumb" border="0"/></a>
非常感谢任何帮助,谢谢。
答案 0 :(得分:0)
这些可能是你的问题:
var image=$(".image").attr("rel");
var imid=$(".image").attr("data");
$(".image")
选择所有的元素image
。您只想要点击的那个,因此请使用this
来引用它:
var image = $(this).attr("rel");
var imid = $(this).attr("data");
另外,请不要像data
那样制作自定义属性。 HTML5引入了data-
属性,用于存储自定义数据类型,因此请使用它们:
data-number="1"
您可以使用.data()
方法访问它:
var imid = $(this).data('number');