我遇到了这段代码的麻烦。它应该这样做:
育儿: #portfolioHolder(在函数开头可见) .portfolioImage #details(在函数开头不可见) 图像配
我的代码:
$(function(){
$("div.portfolioImage").click(function(){
var id = $(this).id;
window.print($(this).id);
$("div#portfolioHolder").fadeOut('slow', function() {
// Animation complete.
});
$("div#details").fadeIn('slow', function() {
// Animation complete.
});
$("div.image").each.fadeOut('slow', function(){/*complete*/});
$("div.image#"+id.toString()).fadeIn('slow', function(){/*complete*/});
});
});
- 大卫
答案 0 :(得分:0)
您的代码中存在几个问题。
this.id
或$(this).attr('id')
$("div.image").each.fadeOut
会抛出错误,因为each
是一种方法,并且您尝试将其用作属性并在其上调用fadeOut
方法。您不必在此使用each
,因为$("div.image").fadeOut()
将负责在所有选定元素上运行fadeOut
。试试这个
$(function(){
$("div.portfolioImage").click(function(){
var id = this.id;
$("div#portfolioHolder").fadeOut('slow', function() {
// Animation complete.
});
$("div#details").fadeIn('slow', function() {
// Animation complete.
});
$("div.image").fadeOut('slow', function(){/*complete*/});
$("div.image#"+id).fadeIn('slow', function(){/*complete*/});
});
});
答案 1 :(得分:0)
ID应该是唯一的!但您可以使用data-id或任何data-X代替......
而不是:
<div class="portfolioImage" id="3">...</div>
<div class="image" id="3">...</div>
使用:
<div class="portfolioImage" id="image3">...</div>
<div class="image" data-id="image3">...</div>
和JS:
$('.portfolioImage').click(function(){
var id = $(this).attr('id');
$('.image').fadeOut('slow');
$('.image[data-id='+id+']').fadeIn('slow');
$('#portfolioHolder').fadeOut('slow');
$('.details').fadeIn('slow');
});
应该是对的