2015-01-07 124 views
1

我有一个关于在我的javascript代码中添加和删除类的问题。jquery添加和删除类不工作

我创造了这个DEMO codepen.io

所以,你可以在演示中看到有一个点击此处链接。当您单击然后jquery链接做

$(document).ready(function() { 
    $('.buton').click(function (event) { 
    event.preventDefault(); 
     $('.vduzalani').animate({'opacity':'.50'}, 300, 'linear'); 
     $('.vduzalani').css('display', 'block'); 
     $(this).next('.yazi-paylas').toggleClass('in'); 

    })  
}); 

那么问题是,我想一个.in.yazi-paylasdiv添加标签。什么是我的javascript代码问题

回答

3

这是因为.buton是其母公司和.next()唯一的子节点将返回任何结果,如在您的标记中看到:

<div class="container"> 
    <div class="buton"><a href="#">Click Here</a></div> 
    <!-- .buton is the ony sibling! --> 
</div> 
<div class="yazi-paylas">ssss</div> 
<div class="vduzalani"></div> 

Y您可以同时使用.parent('.container')(或只是.parent())或.closest('.container')去一个级别,并选择.container眼前的兄弟姐妹:

$(document).ready(function() { 
    $('.buton').click(function (event) { 
    event.preventDefault(); 

    // You can use chaining, so you don't have to fetch $('.vduzalani') twice 
    $('.vduzalani') 
    .animate({'opacity':'.50'}, 300, 'linear') 
    .css('display', 'block'); 

    // Tranverse DOM 
    $(this).parent().next('.yazi-paylas').toggleClass('in'); 
    // or 
    // $(this).closest('.container').next('.yazi-paylas').toggleClass('in'); 
    }); 
}); 

见演示小提琴这里:http://jsfiddle.net/teddyrised/0g9385k1/

+0

如果我想添加另一个类,比如当我点击'.buton'后,这个按钮自动添加'.up {z-index:999;}'就像之前点击'

Click Here
'后点击'
Click Here
' – innovation

+1

然后只需使用'$(this).toggleClass('up')'。 – Terry

1

请尝试:

$('.yazi-paylas').toggleClass('in'); 

,而不是

$(this).next('.yazi-paylas').toggleClass('in'); 
1

评估父拿到.yazi-paylas元素。你的代码更改为:

$(this).parent().next('.yazi-paylas').toggleClass('in'); 

或者,如果它不事父,只是做:

$('.yazi-paylas').toggleClass('in'); 
0

尝试用它来取代您的线路:

$(this).parent().next('.yazi-paylas').toggleClass('in'); 

$(本)在这种情况下,实际上比您尝试选择的元素更深一层。