如何使toggleClass仅适用于单击的元素

时间:2017-01-31 23:29:32

标签: javascript jquery twitter-bootstrap

我正在尽力说出来,这可能已经存在,但我不确定找到它所需的语言。

我的手风琴是由列表输出的。我试图这样做,当点击列表项时,图标会动画。

$('[data-toggle=collapse]').on('click', function() {
        $('[data-toggle=collapse]').not(this).removeClass('collapsed');
        $('.plus-minus-toggle').toggleClass('collapsed');
    });

我试图通过谷歌搜索来实现这一目标,但是如果我点击任何包含[data-toggle=collapse]的列表项,那么所有div都会.plus-minus-toggle切换collapsed。我只希望我点击的[data-toggle=collapse]切换collapsed。我不知道如何将这一次单独出来。

更新

我有一段与之相关的类似代码,是否可以将它们绑定到我的OP?或者它们应该分开吗?

$(document).on('click', '[data-toggle=collapse] .fa', function(e) {
        e.stopPropagation();
    });

更新#2

<div class="tab-pane active" id="tab2">
  <div class="panel-group" id="help-accordion-2">
    <div class="panel panel-default panel-help">
      <a href="#post-surgery-add-case-add-cases-work" data-toggle="collapse">
        <div class="panel-heading">
          <h2>What is an add-on case? How to add-on cases work?</h2>
          <div class="plus-minus-toggle collapsed"></div>
        </div>
      </a>

      <div id="post-surgery-add-case-add-cases-work" class="collapse">
        <div class="panel-body">
          <p>Lorem Ipsum</p>
        </div>
      </div>
    </div>
  </div>
</div>

以下是正在使用的HTML示例。

更新#3

$('[data-toggle=collapse]').on('click', function() {
    $('[data-toggle=collapse]').not(this).removeClass('collapsed');
    $(this).find('.plus-minus-toggle').toggleClass('collapsed');
});

这段代码完成了我想要的。

2 个答案:

答案 0 :(得分:1)

像这样:

alert((intPrompt('mark 1') + intPrompt('mark 2') + intPrompt('mark 3') + intPrompt('mark 4')) / 4);

希望这有帮助。

答案 1 :(得分:0)

from math import *
from graphics import *

def main():
    win = GraphWin("Drawing a Cyclone",600,450)            
    win.setCoords(0,0,600,450)                             
    msg = "Please enter the number of cycles, and click the start and end positions in the window."
    Text(Point(300, 438), msg).draw(win)
    Text(Point(65,415),"# of cycles:").draw(win)
    inbox =Entry(Point(130,415),5)
    inbox.draw(win)


    start=win.getMouse()
    start.setFill("red")
    start.draw(win)
    stop=win.getMouse()
    stop.setFill("red")
    stop.draw(win)

    cycles=eval(inbox.getText())
    radius = 0                                                 
    length = sqrt((stop.x-start.x)**2+(stop.y-start.y)**2)  
    step_radius = length / (120*cycles)
    radian = atan((stop.y-start.y)/(stop.x-start.x))
    initial_angle = int(degrees(radian))

    for i in (0, cycles*360, 3):
        radius = radius + step_radius
        theta=radians(initial_angle + (360*cycles*i)+3*i)
        stop.x = start.x + radius*cos(theta)
        stop.y = start.y + radius*sin(theta)
        line=Line(start,stop)
        line.draw(win)
        start.x=stop.x
        start.y=stop.y


    win.getMouse()
    win.close()

main()