Div 单击和悬停效果父级到子级
Div click and hover effect parent to child
我有 3 个父div 和 3 个子div . 当我单击父div 时,等效子div 应该可见。父级和子级等效列表。每当用户将鼠标悬停在 1'stdiv ul li 等效子级 ul li 添加一些类(突出显示)时。在某个时候,第二个div也是这样工作的,对一个div对另一个div没有影响。我在这里写了一些代码,它的某些部分工作正常。我想要优化代码。是否有任何可以对此代码应用 OOP。
有些是越野车. 有没有办法不使用获取索引号来做到这一点
网页代码
<div class="myparent">
<div class="parent">
<ul>
<li>test1</li>
<li>test2</li>
<li>test3</li>
</ul>
click here and hover and test-'s
</div>
<div class="parent">
<ul>
<li>test1</li>
<li>test2</li>
<li>test3</li>
</ul>
click here and hover and test-'s
</div>
<div class="parent"></div>
</div>
<div class="mychaild">
<div class="chaild" style="display:none">
<ul>
<li>test1</li>
<li>test2</li>
<li>test3</li>
</ul>
</div>
<div class="chaild" style="display:none">
<ul>
<li>test1</li>
<li>test2</li>
<li>test3</li>
</ul>
</div>
<div class="chaild" style="display:none"></div>
</div>
JAVASCRIPT 代码
$(document).ready(function() {
$('.parent').click(function(e) {
e.preventDefault();
indexn = $('.parent').index(this);
$('.chaild:eq(' + indexn + ')').show();
$('.parent:eq(' + indexn + ') ul li').hover(function() {
$(this).toggleClass('selected');
chaildindex = $('.parent:eq(' + indexn + ') ul li').index(this);
$('.chaild:eq(' + indexn + ') ul li:eq(' + chaildindex + ')').toggleClass('selected');
});
});
});
了解更多
http://codepen.io/sarath704/pen/cpKsJ或 http://jsbin.com/Aqidopi/1/edit
并给我建议,我是JavaScript和jQuery编程的新手
您需要
做的是将.hover()
函数绑定到click事件之外,而不是在它内部:
$(document).ready(function() {
$('.parent').click(function(e) {
e.preventDefault();
indexn = $('.parent').index(this);
$('.chaild:eq(' + indexn + ')').show();
});
$('.parent ul li').hover(function() {
$(this).toggleClass('selected');
var liIndex = $(this).index(),
parentIndex = $(this).parents('.parent').index();
$('.chaild:eq('+parentIndex+') > ul > li:eq('+liIndex+')').toggleClass('selected');
});
});
http://codepen.io/terrymun/pen/qzlfh
相关文章:
- OpenLayers在悬停时高亮显示功能,并在单击时选择
- 使用Jquery创建一个具有单击和悬停功能的菜单
- 只要用户将鼠标悬停在jQuery中的某个元素上,就可以执行多次单击
- 悬停时展开垂直下拉菜单,而不是单击
- Highcharts-在单击而不是悬停时显示工具提示
- 如何使单击时的下拉列表不悬停
- 如何激活下拉菜单:在一个元素上单击768px宽度下方,在另一个元素上将鼠标悬停在768px上方
- 如何使Highcharts中的渲染标签始终可见,并且相对于单击或悬停的点仍然可见
- 在可视化中将CSS从悬停更改为单击
- 鼠标悬停事件不会触发以触发 D3 中的单击事件
- 在单击按钮时激活按钮的悬停状态,直到单击另一个按钮(Javascript/JQuery)
- 悬停时无法单击锚标记,但其显示链接
- Jquery Resize问题.如果宽度小于768宽度,请启用“单击选项”.768以上鼠标悬停选项启用
- 如何防止Jquery colorbox组在单击或鼠标悬停时启动
- 切换悬停和单击无法正常工作
- 如果释放鼠标时内部元素未悬停,则防止触发“单击”的正确方法
- fadeIn在悬停时工作,但在单击/单击时不工作
- 单击后使CSS悬停元素永久化
- VBA单击悬停下拉菜单
- Chrome扩展-在单击/悬停时更改弹出图标