我的页面中有3个左右的按钮,当用户点击这些链接时,我需要显示社交图标。 我用过这个jQuery
$('.one').on('click', function() {
$('.smenu').not($(this).next()).removeClass('share')
$(this).next().toggleClass('share');
});
<div id="sharing_area">
<ul class='smenu'>
<li class="facebook"><a target="_blank" onclick="return windowpop(this.href, 545, 433)" href="https://www.facebook.com/sharer/sharer.php?u=http://youtu.be/<? echo $id_3 ?>"><i class="icon-facebook"></i></a></li>
</ul>
<span class="one">Share</span>
</div>
我不断收到错误,但我不知道我做错了什么。 你能帮助我吗?
这是我的DEMO
答案 0 :(得分:1)
您要点击的范围没有.next()元素!您的UL在该范围之前,因此您需要prev()
:
http://jsfiddle.net/TrueBlueAussie/5dsrk470/5/
$('.one').on('click', function() {
console.log('click');
$('.smenu').not($(this).prev()).removeClass('share')
$(this).prev().toggleClass('share');
});
如果要在单击链接时删除该类,请添加此委派的事件处理程序:
$(document).on('click', 'a', function(){
$('.smenu').removeClass('share')
});
答案 1 :(得分:0)
看起来你混淆了prev和next方法:
var $smenu = $('.smenu');
$('.one').on('click', function () {
$smenu.removeClass('share');
$(this).prev().toggleClass('share');
});