使用 jquery 在同一位置显示项目
Showing project on the same place using jquery
我很难处理 jquery 和定位隐藏且必须显示的项目。我有 2 个白盒子。左框是客户框(具有不同的名称),右框(具有不同的项目)是项目框,所以我在单击时尝试根据左框中的客户名称在右框上显示他的项目,直到这一刻一切都是工作,但问题是当我单击第二个用户时,属于第二个用户的项目显示在属于名字(用户)的项目下。所以我想在同一条线上显示每个项目。我不想一个接一个地展示。
Here is link to jsfiddle
http://jsfiddle.net/m2w3owkh/1/
谢谢!
我建议重组其工作方式。现在您在同一个 ul 中列出了所有项目,这意味着当您对其他客户隐藏项目时,当前所选客户项目的上方和下方会有间隙。
解决此问题的一种方法是为每组项目创建不同的 ul
,然后在单击时显示和隐藏它们。
$(function() {
$("#show1").click(function(){
$(".project").hide();
$(".project_1").toggle();
});
$("#show2").click(function(){
$(".project").hide();
$(".project_2").toggle();
});
$("#show3").click(function(){
$(".project").hide();
$(".project_3").toggle();
});
$("#show4").click(function(){
$(".project").hide();
$(".project_4").toggle();
});
});
.cprojectClients{
position: relative;
left: 40px;
float: left;
background-color: #ffffff;
width: 280px;
height: 400px;
z-index: 2;
-webkit-box-shadow: -16px 2px 38px -8px rgba(0,0,0,0.75);
-moz-box-shadow: -16px 2px 38px -8px rgba(0,0,0,0.75);
box-shadow: -16px 2px 38px -8px rgba(0,0,0,0.75);
}
.cprojectOffers{
float: right;
position: relative;
right: 10px;
top:10px;
background-color: #ffffff;
width: 280px;
height: 400px;
z-index: 1;
-webkit-box-shadow: 16px 2px 38px -8px rgba(0,0,0,0.75);
-moz-box-shadow: 16px 2px 38px -8px rgba(0,0,0,0.75);
box-shadow: 16px 2px 38px -8px rgba(0,0,0,0.75);
}
.project {
display:none;
}
.list h3 {
cursor:pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="cprojectClients">
<p>Client Name</p>
<ul class="list">
<li>
<h3 id="show1">Joe</h3>
</li>
<li>
<h3 id="show2">John</h3>
</li>
<li>
<h3 id="show3">Jason</h3>
</li>
<li>
<h3 id="show4">Jacob</h3>
</li>
</ul>
</div><!--.cproject-clients-->
<div class="cprojectOffers">
<p>Project Name</p>
<ul class="project project_1">
<li>
<a><p>project_1.pdf</p></a>
</li>
<li>
<a><p>project_9.pdf</p></a>
</li>
</ul>
<ul class="project project_2">
<li>
<a><p>project_2.pdf</p></a>
</li>
</ul>
<ul class="project project_3">
<li>
<a><p>project_3.pdf</p></a>
</li>
</ul>
<ul class="project project_4">
<li>
<a><p>project_4.pdf</p></a>
</li>
<li>
<a><p>project_5.pdf</p></a>
</li>
<li>
<a><p>project_6.pdf</p></a>
</li>
<li>
<a><p>project_7.pdf</p></a>
</li>
<li>
<a><p>project_8.pdf</p></a>
</li>
</ul>
</div><!--.cproject-offers-->
你可以清理它甚至比这更多,并以一种方式构建它,你可以重复使用相同的 jQuery 函数来为任意数量的 clients/projects 执行此操作,而无需添加新的每次添加新客户端时单击功能,但这应该可以帮助您入门。
使用这个
$("#show1").click(function(){
$(".project_1").toggle();
$('.projectList>li>a>p').not('.project_1').hide();
});
$("#show2").click(function(){
$(".project_2").toggle();
$('.projectList>li>a>p').not('.project_2').hide();
});
$("#show3").click(function(){
$(".project_3").toggle();
$('.projectList>li>a>p').not('.project_3').hide();
});
$("#show4").click(function(){
$(".project_4").toggle();
$('.projectList>li>a>p').not('.project_4').hide();
});
.cprojectClients{
position: relative;
left: 40px;
float: left;
background-color: #ffffff;
width: 280px;
height: 400px;
z-index: 2;
-webkit-box-shadow: -16px 2px 38px -8px rgba(0,0,0,0.75);
-moz-box-shadow: -16px 2px 38px -8px rgba(0,0,0,0.75);
box-shadow: -16px 2px 38px -8px rgba(0,0,0,0.75);
}
.cprojectOffers{
float: right;
position: relative;
right: 10px;
top:10px;
background-color: #ffffff;
width: 280px;
height: 400px;
z-index: 1;
-webkit-box-shadow: 16px 2px 38px -8px rgba(0,0,0,0.75);
-moz-box-shadow: 16px 2px 38px -8px rgba(0,0,0,0.75);
box-shadow: 16px 2px 38px -8px rgba(0,0,0,0.75);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<div class="cprojectClients">
<p>Client Name</p>
<ul class="list">
<li>
<h3 id="show1">Joe</h3>
</li>
<li>
<h3 id="show2">John</h3>
</li>
<li>
<h3 id="show3">Jason</h3>
</li>
<li>
<a href="javascript:;"><h3 id="show4">Jacob</h3></a>
</li>
</ul>
</div><!--.cproject-clients-->
<div class="cprojectOffers">
<p>Project Name</p>
<ul class="projectList">
<li>
<a href="javascript:;"><p style="display:none;" class="project_1">project_1.pdf</p></a>
</li>
<li>
<a href="javascript:;"><p style="display:none;" class="project_1">project_9.pdf</p></a>
</li>
<li>
<a href="javascript:;"><p style="display:none;" class="project_2">project_2.pdf</p></a>
</li>
<li>
<a href="javascript:;"><p style="display:none;" class="project_3">project_3.pdf</p></a>
</li>
<li>
<a href="javascript:;"><p style="display:none;" class="project_4">project_4.pdf</p></a>
</li>
<li>
<a href="javascript:;"><p style="display:none;" class="project_4">project_5.pdf</p></a>
</li>
<li>
<a href="javascript:;"><p style="display:none;" class="project_4">project_6.pdf</p></a>
</li>
<li>
<a href="javascript:;"><p style="display:none;" class="project_4">project_7.pdf</p></a>
</li>
<li>
<a href="javascript:;"><p style="display:none;" class="project_4">project_8.pdf</p></a>
</li>
</ul>
</div><!--.cproject-offers-->
我很难处理 jquery 和定位隐藏且必须显示的项目。我有 2 个白盒子。左框是客户框(具有不同的名称),右框(具有不同的项目)是项目框,所以我在单击时尝试根据左框中的客户名称在右框上显示他的项目,直到这一刻一切都是工作,但问题是当我单击第二个用户时,属于第二个用户的项目显示在属于名字(用户)的项目下。所以我想在同一条线上显示每个项目。我不想一个接一个地展示。
Here is link to jsfiddle
http://jsfiddle.net/m2w3owkh/1/
谢谢!
我建议重组其工作方式。现在您在同一个 ul 中列出了所有项目,这意味着当您对其他客户隐藏项目时,当前所选客户项目的上方和下方会有间隙。
解决此问题的一种方法是为每组项目创建不同的 ul
,然后在单击时显示和隐藏它们。
$(function() {
$("#show1").click(function(){
$(".project").hide();
$(".project_1").toggle();
});
$("#show2").click(function(){
$(".project").hide();
$(".project_2").toggle();
});
$("#show3").click(function(){
$(".project").hide();
$(".project_3").toggle();
});
$("#show4").click(function(){
$(".project").hide();
$(".project_4").toggle();
});
});
.cprojectClients{
position: relative;
left: 40px;
float: left;
background-color: #ffffff;
width: 280px;
height: 400px;
z-index: 2;
-webkit-box-shadow: -16px 2px 38px -8px rgba(0,0,0,0.75);
-moz-box-shadow: -16px 2px 38px -8px rgba(0,0,0,0.75);
box-shadow: -16px 2px 38px -8px rgba(0,0,0,0.75);
}
.cprojectOffers{
float: right;
position: relative;
right: 10px;
top:10px;
background-color: #ffffff;
width: 280px;
height: 400px;
z-index: 1;
-webkit-box-shadow: 16px 2px 38px -8px rgba(0,0,0,0.75);
-moz-box-shadow: 16px 2px 38px -8px rgba(0,0,0,0.75);
box-shadow: 16px 2px 38px -8px rgba(0,0,0,0.75);
}
.project {
display:none;
}
.list h3 {
cursor:pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="cprojectClients">
<p>Client Name</p>
<ul class="list">
<li>
<h3 id="show1">Joe</h3>
</li>
<li>
<h3 id="show2">John</h3>
</li>
<li>
<h3 id="show3">Jason</h3>
</li>
<li>
<h3 id="show4">Jacob</h3>
</li>
</ul>
</div><!--.cproject-clients-->
<div class="cprojectOffers">
<p>Project Name</p>
<ul class="project project_1">
<li>
<a><p>project_1.pdf</p></a>
</li>
<li>
<a><p>project_9.pdf</p></a>
</li>
</ul>
<ul class="project project_2">
<li>
<a><p>project_2.pdf</p></a>
</li>
</ul>
<ul class="project project_3">
<li>
<a><p>project_3.pdf</p></a>
</li>
</ul>
<ul class="project project_4">
<li>
<a><p>project_4.pdf</p></a>
</li>
<li>
<a><p>project_5.pdf</p></a>
</li>
<li>
<a><p>project_6.pdf</p></a>
</li>
<li>
<a><p>project_7.pdf</p></a>
</li>
<li>
<a><p>project_8.pdf</p></a>
</li>
</ul>
</div><!--.cproject-offers-->
你可以清理它甚至比这更多,并以一种方式构建它,你可以重复使用相同的 jQuery 函数来为任意数量的 clients/projects 执行此操作,而无需添加新的每次添加新客户端时单击功能,但这应该可以帮助您入门。
使用这个
$("#show1").click(function(){
$(".project_1").toggle();
$('.projectList>li>a>p').not('.project_1').hide();
});
$("#show2").click(function(){
$(".project_2").toggle();
$('.projectList>li>a>p').not('.project_2').hide();
});
$("#show3").click(function(){
$(".project_3").toggle();
$('.projectList>li>a>p').not('.project_3').hide();
});
$("#show4").click(function(){
$(".project_4").toggle();
$('.projectList>li>a>p').not('.project_4').hide();
});
.cprojectClients{
position: relative;
left: 40px;
float: left;
background-color: #ffffff;
width: 280px;
height: 400px;
z-index: 2;
-webkit-box-shadow: -16px 2px 38px -8px rgba(0,0,0,0.75);
-moz-box-shadow: -16px 2px 38px -8px rgba(0,0,0,0.75);
box-shadow: -16px 2px 38px -8px rgba(0,0,0,0.75);
}
.cprojectOffers{
float: right;
position: relative;
right: 10px;
top:10px;
background-color: #ffffff;
width: 280px;
height: 400px;
z-index: 1;
-webkit-box-shadow: 16px 2px 38px -8px rgba(0,0,0,0.75);
-moz-box-shadow: 16px 2px 38px -8px rgba(0,0,0,0.75);
box-shadow: 16px 2px 38px -8px rgba(0,0,0,0.75);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<div class="cprojectClients">
<p>Client Name</p>
<ul class="list">
<li>
<h3 id="show1">Joe</h3>
</li>
<li>
<h3 id="show2">John</h3>
</li>
<li>
<h3 id="show3">Jason</h3>
</li>
<li>
<a href="javascript:;"><h3 id="show4">Jacob</h3></a>
</li>
</ul>
</div><!--.cproject-clients-->
<div class="cprojectOffers">
<p>Project Name</p>
<ul class="projectList">
<li>
<a href="javascript:;"><p style="display:none;" class="project_1">project_1.pdf</p></a>
</li>
<li>
<a href="javascript:;"><p style="display:none;" class="project_1">project_9.pdf</p></a>
</li>
<li>
<a href="javascript:;"><p style="display:none;" class="project_2">project_2.pdf</p></a>
</li>
<li>
<a href="javascript:;"><p style="display:none;" class="project_3">project_3.pdf</p></a>
</li>
<li>
<a href="javascript:;"><p style="display:none;" class="project_4">project_4.pdf</p></a>
</li>
<li>
<a href="javascript:;"><p style="display:none;" class="project_4">project_5.pdf</p></a>
</li>
<li>
<a href="javascript:;"><p style="display:none;" class="project_4">project_6.pdf</p></a>
</li>
<li>
<a href="javascript:;"><p style="display:none;" class="project_4">project_7.pdf</p></a>
</li>
<li>
<a href="javascript:;"><p style="display:none;" class="project_4">project_8.pdf</p></a>
</li>
</ul>
</div><!--.cproject-offers-->