我正在尝试制作一个可以删除项目的旋转木马,并让它与旋转木马上的其中一个项目一起工作,但它似乎不能与以下任何人有任何想法的项目一起使用?
的Javascript
$(document).ready(function() {
$("#carousel").carouFredSel({
width : 675,
height : 130,
align : "left",
auto : {
pauseOnHover : true
},
items : {
visible:5
},
scroll : {
items : 1
},
prev : {
button : "#carPrev",
key : "left"
},
next : {
button : "#carNext",
key : "right"
}
}).find("#delButton").click(function(){
$("#rvBox").animate({
opacity : 0
}, 500).animate({
width : 0,
margin : 0,
borderWidth : 0
}, 500, function(){
$("#carousel").trigger("removeItem", $("#rvBox"));
});
});
});
HTML
<body>
<div id="container">
<header>
<h1>Recently Viewed Items Carousel</h1>
</header>
<div id="rViewed">
<div id="carousel">
<div id="rvBox" class="rvBox">
<a class="delete" id="delButton" href="#"></a>
<img src="img/img1.jpg" />
</div>
<div id="rvBox" class="rvBox">
<a class="delete" id="delButton" href="#"></a>
<img src="img/img2.jpg" />
</div>
<div class="rvBox">
<a class="delete" id="delButton" href="#"></a>
<img src="img/img3.jpg" />
</div>
<div class="rvBox">
<a class="delete" id="delButton" href="#"></a>
<img src="img/img4.jpg" />
</div>
<div class="rvBox">
<a class="delete" id="delButton" href="#"></a>
<img src="img/img5.jpg" />
</div>
<div class="rvBox">
<a class="delete" id="delButton" href="#"></a>
<img src="img/img6.jpg" />
</div>
<div class="rvBox">
<a class="delete" id="delButton" href="#"></a>
<img src="img/img7.jpg" />
</div>
<div class="rvBox">
<a class="delete" id="delButton" href="#"></a>
<img src="img/img8.jpg" />
</div>
</div>
<a class="prev" id="carPrev" href="#"></a>
<a class="next" id="carNext" href="#"></a>
</div>
</div>
</body>
CSS
body {
}
h1 {
font-family: Arial, Verdana, sans-serif;
font-size: 20px;
text-align: center;
}
/*DIV's*/
#container {
position:relative;
width:974px;
margin:auto;
background:#fff9b6;
}
#rViewed {
position:relative;
width:974px;
height:140px;
background:#ffffff;
padding: 15px 0 15px 0;
}
#carousel {
width:800px;
margin:0 0 0 40px;
}
.rvBox {
position:relative;
display:block;
float:left;
margin: 0 15px 0 0;
width:120px;
height:120px;
border:1px solid #dedede;
text-align:center;
background:url(../img/grad-x.jpg) repeat-x;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
-moz-box-shadow: 3px 3px 3px #888;
-webkit-box-shadow: 3px 3px 3px #888;
box-shadow: 3px 3px 3px #888;
}
.rvBox img {
margin-top:10px;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
}
a.prev {
background:url(../img/left.png) no-repeat;
width: 31px;
height: 31px;
display:block;
position:absolute;
top:60px;
}
a.prev:hover {
background:url(../img/left_hover.png) no-repeat;
}
a.next {
background:url(../img/right.png) no-repeat;
width: 31px;
height: 31px;
display:block;
position:absolute;
top:60px;
right:220px;
}
a.next:hover {
background:url(../img/right_hover.png) no-repeat;
}
a.delete {
background:url(../img/delete.png) no-repeat;
width: 21px;
height: 21px;
display: block;
position:absolute;
top:3px;
right:3px;
}
a.delete:hover {
background:url(../img/delete_hover.png) no-repeat;
}
答案 0 :(得分:4)
首先,您不需要重复#delButton
和#rvBox
。 ID不应重复。实际上,您可以完全删除这些ID,因为您只能使用类名。
以下是您的HTML现在的样子:
<body>
<div id="container">
<header>
<h1>Recently Viewed Items Carousel</h1>
</header>
<div id="rViewed">
<div id="carousel">
<div class="rvBox">
<a class="delete" href="#"></a>
<img src="img/img1.jpg" />
</div>
<div class="rvBox">
<a class="delete" href="#"></a>
<img src="img/img2.jpg" />
</div>
<div class="rvBox">
<a class="delete" href="#"></a>
<img src="img/img3.jpg" />
</div>
<div class="rvBox">
<a class="delete" href="#"></a>
<img src="img/img4.jpg" />
</div>
<div class="rvBox">
<a class="delete" href="#"></a>
<img src="img/img5.jpg" />
</div>
<div class="rvBox">
<a class="delete" href="#"></a>
<img src="img/img6.jpg" />
</div>
<div class="rvBox">
<a class="delete" href="#"></a>
<img src="img/img7.jpg" />
</div>
<div class="rvBox">
<a class="delete" href="#"></a>
<img src="img/img8.jpg" />
</div>
</div>
<a class="prev" id="carPrev" href="#"></a>
<a class="next" id="carNext" href="#"></a>
</div>
</div>
</body>
对于删除链接,您可以绑定到.delete
类上的click事件。例如:
.find(".delete").click(function(){});
这是可以接受的原因是单击的特定链接在该事件处理程序中变为this
。因此,可以使用$(this)
访问jQuery包装的链接。
这个类也可以访问rvBox
,但是这里缺少的是你在处理程序中唯一感兴趣的rvBox
是rvBox,它是点击链接的父级。您不想删除所有项目。
因此处理程序可以重写为:
.find(".delete").click(function(){
var box = $(this).parent();
$(box).animate({
opacity : 0
}, 500).animate({
width : 0,
margin : 0,
borderWidth : 0
}, 500, function(){
$("#carousel").trigger("removeItem", box);
});
});
答案 1 :(得分:1)
答案 2 :(得分:0)
我似乎通过改变我正在使用的.find()从DIV id寻找到搜索范围来解决这个问题,不是最好的解决方案,但它有效!有人能告诉我为什么我不能使用.find()来搜索div id吗?