我正在尝试用jQuery构建一个基本的滑块。我在一个页面上显示了5个主要部分,当您将鼠标悬停在它们的容器div上时,第一个和最后一个元素上会弹出箭头。
我的下一步是编写代码,将div (根据单击方向左或右)存储在数组中,并将其从DOM中删除。但是,我在连接到click事件时遇到了问题。
这是我的css:
.left_arrow_background {
height: 175px;
width: 65px;
/* background:url(../images/left-arrow.png) no-repeat; */
background:#ccc;
opacity: .9;
position: absolute;
cursor: pointer;
z-index: 2;
}
.right_arrow_background {
height: 175px;
width: 65px;
/* background:url(../images/right-arrow.png) no-repeat;*/
background:#ccc;
z-index: 2;
opacity: .9;
position: relative;
left:890px;
cursor: pointer;
}
.boomers_scroller {
height:275px;
padding-left:1px;
display:block;
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #CCC;
overflow:hidden;
}
.all-boomers {
display: block;
float: left;
height: 225px;
margin-bottom: 20px;
margin-left: 20px;
width: 175px;
}以及输出的HTML:
<div class="all-boomers">
<a href="/boomers/profile/id/2"><img src="/images/users/medium_thumbs/4fa44866c3561.jpg" alt=""/></a>
<p class="boomers_name">PC Guy</p>
<p class="activity_name">IT Guy PC Repair</p>
</div>
<!-- three more identical section here -->
<div class="all-boomers">
<a href="/boomers/profile/id/6"><img src="/images/users/medium_thumbs/4fa62dff64c44.jpg" alt=""/></a>
<p class="boomers_name">Cruella Deville</p>
<p class="activity_name">Dalmation Dog-Sitter</p>
</div>即使从样式表中删除z-index,我似乎也无法记录单击事件。到目前为止,我的js文件如下:
$(document).ready(function() {
var boomers = $('.all-boomers');
var boomersLength = boomers.length;
var boomersContainer = {};
$(".all-boomers:eq(4)").attr('id','right-boomer');
$(".all-boomers:eq(0)").removeClass("all-boomers").addClass("one-fifth first").attr('id','left-boomer');
var image_left = '<div class="left_arrow_background"></div>';
var image_right = '<div class="right_arrow_background"></div>';
$(".boomers_scroller").hover(
function(){
$(image_left).insertBefore('#left-boomer');
$(image_right).insertAfter('#right-boomer');
},
function(){
$('.left_arrow_background').remove();
$('.right_arrow_background').remove();
});
$("div.left_arrow_background").click(function(){
var left_boomer = $('#left-boomer').children();
// store left_boomer in boomerscontainer, then remove it from dom
console.log('clicked!');
});
});这不仅仅是点击事件...我还尝试了其他鼠标事件,但没有触发控制台测试消息,或者如果我将代码放在.click函数中,它不会触发代码。
编辑:添加第四个(相关css样式)
发布于 2012-05-11 00:27:15
修复了!当我单击时,hover事件仍然在发生,所以在hover事件中嵌套click事件可以解决这个问题。
$(document).ready(function() {
var boomers = $('.all-boomers');
var boomersLength = boomers.length;
var boomersContainer = {};
$(".all-boomers:eq(4)").attr('id','right-boomer');
$(".all-boomers:eq(0)").removeClass("all-boomers").addClass("one-fifth first").attr('id','left-boomer');
var image_left = '<div class="left_arrow_background"></div>';
var image_right = '<div class="right_arrow_background"></div>';
$(".boomers_scroller").hover( function(){
$(image_left).insertBefore('#left-boomer');
$(image_right).insertAfter('#right-boomer');
$("div.left_arrow_background").click(function(){
var left_boomer = $('#left-boomer').children();
// store left_boomer in boomerscontainer, then remove it from dom
console.log('clicked!'); });
},
function(){
$('.left_arrow_background').remove();
$('.right_arrow_background').remove();
});
}); 发布于 2012-05-10 13:40:02
您忘记关闭ready()函数(或者在粘贴之前将其复制到此处:)再添加一个});到此代码的底部。在这里它是孤立的:http://jsfiddle.net/Q3rDz/
https://stackoverflow.com/questions/10527947
复制相似问题