我想创建一个事件点击按钮将显示菜单,但由于每个模块都有这样一个按钮,当我点击其他div的按钮时,当前菜单保持不变,是任何方式来解决这个问题?jQuery切换隐藏一个元素
我试图创造一些甚至在切换的第一部分,但它造成更大的问题:我需要点击两次另一个按钮使其出现......
HTML:
<ul>
<li class="item">
<div class="portfolio-image-wrapper">
<a class="hideModelLink" href="#">ModelLink</a>
<img src="assets/img/gallery/2.jpg" alt="" />
<div class="edit-menu">
<a href="#" target="_blank">Rename</a>
<a href="#" target="_blank">Delete</a>
</div>
<div class="item-info-overlay"></div>
</div>
<div class="item-info">
<h4 class="text-dark no-margin title semi-bold"><a class="" target="_blank" href="#">Creative Illustration</a></h4>
<p>3/21/2014</p>
</div>
<a class="edit-button"></a>
</li>
...
</ul>
JS:
$('.edit-button').toggle(function(){
$(this).siblings('.portfolio-image-wrapper').find('.edit-menu').css({
display: 'block'
});
$(this).siblings('.portfolio-image-wrapper').find('.item-info-overlay').css({
background: 'none'
});
$(this).css({
'background-color': '#f5f5f5'
});
},
function(){
$(this).siblings('.portfolio-image-wrapper').find('.edit-menu').css({
display: 'none'
});
$(this).siblings('.portfolio-image-wrapper').find('.item-info-overlay').css({
background: 'rgba(153, 153, 153, 0.2)'
});
$(this).css({
'background-color': '#ffffff'
});
});
你应该把这个问题的'jsFiddle'鼓励人们在视觉上与它玩。 – Gavin42
我认为jQuery已经删除了您正在使用的'.toggle()版本(以多个回调为参数的版本)。 – jfriend00
«toggle»方法在jQuery 1.8中被弃用,并在jQuery 1.9中被移除:[http://api.jquery.com/toggle-event/](http://api.jquery.com/toggle-event/)。使用[jQuery Migrate](http://jquery.com/download/#jquery-migrate-plugin)**或**使用替代代码来实现您的目标,请参阅以下文章:[jQuery:使用.toggle的替代方法()这是弃用](http://stackoverflow.com/questions/14478994/jquery-use-an-alternative-to-toggle-which-is-deprecated)或[jQuery .toggle事件不推荐使用?] (http://stackoverflow.com/questions/17583215/jquery-toggle-event-deprecated-what-to-use)。 – Cholesterol