这是我的HTML代码,活动类显示点击的内容:
<div class="care_planning_lft">
<ul>
<li><a id="push-1" class="active">Care Planning</a></li>
<li><a id="push-2">Care Teams</a></li>
<li><a id="push-3">Care Coordination</a></li>
<li><a id="push-4" class="padd">Secure, electronic<br>patient messaging</a></li>
<li><a id="push-5" class="padd">Patient health<br>data & reports</a></li>
<li><a id="push-6">Patient Health alerts</a></li>
<li class="last"><a id="push-7" class="padd">EHR system<br>integration</a></li>
</ul>
</div>
<div id="pull-1" class="care_planning_rht active">
<?php
$page_id = 1161; $page_data = get_post( $page_id );
echo apply_filters('the_content', $page_data->post_content);
?>
</div>
<div class="care_planning_rht" id="pull-2">
<?php
$page_id = 1162; $page_data = get_post( $page_id );
echo apply_filters('the_content', $page_data->post_content);
?>
</div>
<div class="care_planning_rht" id="pull-3">
<?php
$page_id = 1163; $page_data = get_post( $page_id );
echo apply_filters('the_content', $page_data->post_content);
?>
</div>
<div class="care_planning_rht" id="pull-4">
<?php
$page_id = 1164; $page_data = get_post( $page_id );
echo apply_filters('the_content', $page_data->post_content);
?>
</div>
<div class="care_planning_rht" id="pull-5">
<?php
$page_id = 1165; $page_data = get_post( $page_id );
echo apply_filters('the_content', $page_data->post_content);
?>
</div>
<div class="care_planning_rht" id="pull-6">
<?php
$page_id = 1166; $page_data = get_post( $page_id );
echo apply_filters('the_content', $page_data->post_content);
?>
</div>
<div class="care_planning_rht" id="pull-7">
<?php
$page_id = 1167; $page_data = get_post( $page_id );
echo apply_filters('the_content', $page_data->post_content);
?>
</div>
这是我的jQuery代码,仅适用于push-1和pull-1:
$(document).ready(function(){
$("#push-1").click(function () {
$("#push-1").addClass("active");
$("#pull-1").addClass("active");
$("#push-2").removeClass("active");
$("#pull-2").removeClass("active");
$("#push-3").removeClass("active");
$("#pull-3").removeClass("active");
$("#push-4").removeClass("active");
$("#pull-4").removeClass("active");
$("#push-5").removeClass("active");
$("#pull-5").removeClass("active");
$("#push-6").removeClass("active");
$("#pull-6").removeClass("active");
$("#push-7").removeClass("active");
$("#pull-7").removeClass("active");
});
});
现在,我已经为1-7重复了jQuery,只是更改了哪些ID获得了活动类。有人可以告诉我,或指出我正确的方向,如何简化这个?这对我来说似乎很多余,但我还不够好。
答案 0 :(得分:1)
尝试
jQuery(function ($) {
var $els = $('.care_planning_rht');
var $as = $('.care_planning_lft a').click(function () {
$(this).addClass('active');
$as.not(this).removeClass('active');
var target = '#pull-' + this.id.match(/\d+$/)[0];
$els.not(target).removeClass('active');
$(target).addClass('active');
})
})
演示:Fiddle
答案 1 :(得分:1)
只需像这样使用
$("[id^=push],[id^=pull]").click(function () {
$(".active").removeClass("active");
$(this).addClass("active");
});
这会将点击事件绑定到以id push和pull开头的所有元素。您可以使用单行$(".active").removeClass("active");
答案 2 :(得分:1)
您可以使用toggleClass 1 。:
e.g:
HTML:
<ul>
<li><a id="push-1" class="active toggle">Care Planning</a></li>
<li><a id="push-2" class="toggle">Care Teams</a></li>
<li><a id="push-3" class="toggle">Care Coordination</a></li>
<li><a id="push-4" class="toggle padd">Secure, electronic<br>patient messaging</a></li>
<li><a id="push-5" class="toggle padd">Patient health<br>data & reports</a></li>
<li><a id="push-6">Patient Health alerts</a></li>
<li class="last"><a id="push-7" class="padd">EHR system<br>integration</a></li>
</ul>
<div id="pull-1" class="care_planning_rht toggle active">
...
</div>
...
的javascript:
$('a.toggle').click(function() {
$('.toggle').toggleClass('active');
});
1 假设所有元素都有一个共同的选择器 - 在我的例子中我使用了一个类,但你可以使用更高级的选择器,因为其他一些人建议删除必须在HTML中添加另一个类。
答案 3 :(得分:0)
你可以为它们添加一个类并调用类而不是id,或者你可以这样做:
$("#push-2,#pull-2,#push-3,#pull-3,#push-4,#pull-4,#push-5,#pull-5,#push-6,#pull-6,#push-7,#pull-7").removeClass("active");