单击具有相同类的元素并从以前删除属性

时间:2016-06-29 13:52:04

标签: javascript jquery

我有这样的结构

<div class='row'>
  <span class="fake-label"></span>
</div>
<div class='row'>
  <span class="fake-label"></span>
</div>
<div class='row'>
  <span class="fake-label"></span>
</div>

当我点击任何&#39;假标签&#39; jquery代码是评估

$('span.fake-label').click(function() {
        $(this).parents('.row').addClass('bet-popup-active');
        $(this).parents('.row').find('.popup-bet').removeClass('js-slide-hidden');
        $(this).parents('.row').find('.popup-bet').fadeIn(300).css('display','block');
        setTimeout(function(){
            $('.input-bet > input').focus();
        },5);
    });

问题是我无法弄清楚如何点击其他假冒标签&#39;从点击的&#39;假标签&#39;中删除jquery代码之前。

3 个答案:

答案 0 :(得分:1)

如果我明白这就是你要找的东西:

$('span.fake-label').click(function() {
    $(this).parents('.row').find('.popup-bet').each(function(){
        $(this).removeClass('js-slide-hidden');
    });
    $(this).parents('.row').addClass('bet-popup-active');
});

只需从每个元素中删除该类,然后将新的元素添加到单击的元素中。

.each() documentation

答案 1 :(得分:1)

如果您希望每个元素触发一次click事件,则应使用one() method

  $('label > span.fake-label').one( "click", function() {
    $(this).parents('.row').addClass('bet-popup-active');
    $(this).parents('.row').find('.popup-bet').removeClass('js-slide-hidden');
    $(this).parents('.row').find('.popup-bet').fadeIn(300).css('display','block');
    setTimeout(function(){
      $('.input-bet > input').focus();
    },5);
  });

答案 2 :(得分:0)

我不确定你想要什么,但如果你想删除你在&#34; onclick&#34;中写的代码。对于元素的函数,你可以这样做:

$('.element').prop('onclick',null).off('click');