用户点击链接时删除/切换课程

时间:2014-09-15 15:39:37

标签: javascript jquery css

我的页面中有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

2 个答案:

答案 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');
});

演示:http://jsfiddle.net/5dsrk470/6/