2017-06-30 90 views
0

我想触发所选的link有4个属性href它执行onclick功能。我想补充类激活的,选择任何人都可以帮助我走出这个问题添加班级并从选定的按钮中删除班级

<ul class="graph_menu"> 
    <li><a class="grph_btn" onclick="getCompanyRatesGraph(<?php echo $companies['id'] ?>, '-1 month', 'Pkr');">1 M</a></li> 
    <li><a class="grph_btn" onclick="getCompanyRatesGraph(<?php echo $companies['id'] ?>, '-3 months', 'Pkr');">3 M</a></li> 
    <li><a class="grph_btn" onclick="getCompanyRatesGraph(<?php echo $companies['id'] ?>, '-6 months', 'Pkr');">6 M</a></li> 
    <li><a class="grph_btn" onclick="getCompanyRatesGraph(<?php echo $companies['id'] ?>, '-1 year', 'Pkr');">1 Y</a></li> 
    <li><a class="grph_btn" onclick="getCompanyRatesGraph(<?php echo $companies['id'] ?>, '-3 years', 'Pkr');">3 Y</a></li> 
    <li><a class="grph_btn" onclick="getCompanyRatesGraph(<?php echo $companies['id'] ?>, 'all', 'Pkr');">Max</a></li> 
</ul> 

这一个是从所有的按钮,我创建

function getCompanyRatesGraph(val, timeFrame, gd_type) { 
    $(this).removeClass('.active'); 
    $(this).addClass('.active'); 
    $('.load_dt_grph').show(); 
} 
+2

'$( “grph_btn ”)。removeClass(“ 活动”)',和你('.active')''中的'.',应该是'('active')' –

+0

它将活动类添加到所有href中,类名相同 –

+0

Usman你是什么意思? –

回答

4

使用$(".grph_btn").removeClass("active");清除活性功能。

而且从('.active')

还需要添加this到您的onclick事件删除点。因为你的函数不知道什么this

function getCompanyRatesGraph(val, timeFrame, gd_type, obj) { 
 
    $(".grph_btn").removeClass("active"); 
 
    $(obj).addClass('active'); 
 
}
.active { 
 
    color: blue; 
 
    font-size: 20px 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul class="graph_menu"> 
 
    <li><a class="grph_btn" onclick="getCompanyRatesGraph('', '-1 month', 'Pkr', this);">1 M</a></li> 
 
    <li><a class="grph_btn" onclick="getCompanyRatesGraph('', '-3 months', 'Pkr', this);">3 M</a></li> 
 
    <li><a class="grph_btn" onclick="getCompanyRatesGraph('', '-6 months', 'Pkr', this);">6 M</a></li> 
 
    <li><a class="grph_btn" onclick="getCompanyRatesGraph('', '-1 year', 'Pkr', this);">1 Y</a></li> 
 
    <li><a class="grph_btn" onclick="getCompanyRatesGraph('', '-3 years', 'Pkr', this);">3 Y</a></li> 
 
    <li><a class="grph_btn" onclick="getCompanyRatesGraph('', 'all', 'Pkr', this);">Max</a></li> 
 
</ul>

+0

现在它不是删除或添加类 –

+0

运行我的代码并再次检查,确保你写了一切正确 –

+0

@UsmanKhan另外,请注意,你必须添加''Pkr',这个'到你的onclick事件。并且在你的函数中必须是'getCompanyRatesGraph(val,timeFrame,gd_type,obj)'。然后'$(obj).addClass('active');' –

0

function getCompanyRatesGraph(ele, val, timeFrame, gd_type) { 
 
    $('.grph_btn').removeClass('active'); 
 
    $(ele).addClass('active'); 
 
    $('.load_dt_grph').show(); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 
<ul class="graph_menu"> 
 
    <li><a class="grph_btn" onclick="getCompanyRatesGraph(this, 1, '-1 month', 'Pkr');">1 M</a></li> 
 
    <li><a class="grph_btn" onclick="getCompanyRatesGraph(this, 2, '-3 months', 'Pkr');">3 M</a></li> 
 
    <li><a class="grph_btn" onclick="getCompanyRatesGraph(this, 3, '-6 months', 'Pkr');">6 M</a></li> 
 
    <li><a class="grph_btn" onclick="getCompanyRatesGraph(this, 4, '-1 year', 'Pkr');">1 Y</a></li> 
 
    <li><a class="grph_btn" onclick="getCompanyRatesGraph(this, 5, '-3 years', 'Pkr');">3 Y</a></li> 
 
    <li><a class="grph_btn" onclick="getCompanyRatesGraph(this, 6, 'all', 'Pkr');">Max</a></li> 
 
</ul>

+0

您提供的代码不起作用 –

+0

@UsmanKhan您可以看到hassan和我的答案在您运行代码段时工作正常,请确保你根据我们的回答正确地编写了你的​​html,如果是的话,告诉我们什么是不工作的。你也可以包含你的“新”html和jQuery代码 –

+0

是啊对不起,现在我通过检查元素 –

0

香草溶液:

this.classList.add('active')

this.classList.remove('active')

0

甲巧妙的方法,以除去任何活性类是要搜索的类和从自身中取出。因此,而不是

$('.grph_btn').removeClass('active'); 

您可以使用

$('.active').removeClass('active'); 

再到功能

$('.grph_btn').onClick(function(){ 
    $('.active').removeClass('active'); 
    $(this).addClass('active'); 
});