当用户单击链接时删除/切换类

remove/toggle class when users clicks on the link

本文关键字:删除 用户 单击 链接      更新时间:2023-09-26

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

我不断犯错,但我不知道自己做错了什么。你们能帮我吗?

这是我的演示

您正在单击的span没有.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')
});

看起来您混淆了上一个和下一个方法:

var $smenu = $('.smenu');
$('.one').on('click', function () {
    $smenu.removeClass('share');
    $(this).prev().toggleClass('share');
});

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