2013-04-05 86 views
0

我有几个函数,用php排序属性列表。排序工作,但我需要为当前活动点击href设置活动状态。当然,我不能这么幸运,只能用CSS来设置它(尽管我已经在下面引用了我的CSS代码片段),所以我试图用jQuery来实现,但到目前为止还没有成功。您可以找到我的下面的php,jquery和css。如果任何人都可以指引我朝着正确的方向,我将非常感激任何帮助。提前致谢!如何使用JS/jQuery设置复选框的活动状态

<div> 
    <?php 
     foreach(array('desc'=>$main_floor_master) as $asc_desc => $asc_desc_name) { 
     echo '<a class="filter-checkboxes" href="'; 
     echo add_query_arg(array('orderby' => main_floor_master, 'order' => $asc_desc) 
     ); 
     echo "\">Main Floor Master</a>"; 
     } 
    ?> 

    <?php 
     foreach(array('desc'=>$locality_status) as $asc_desc => $asc_desc_name) { 
     echo '<a class="filter-checkboxes" href="'; 
     echo add_query_arg(array('orderby' => status, 'order' => $asc_desc) 
     ); 
     echo "\">Quick Move In</a>"; 
     } 
    ?> 
</div> 


<!-- Active states --> 
<script> 
$(document).ready(function(){ 

    //active state 
    $(function() { 
     $('a').click(function(e) { 
      e.preventDefault(); 
      var $this = $(this); 
      $this.parent().addClass('active'); 

     }); 
    }); 
}); 
</script> 


<!-- CSS --> 
a.filter-checkboxes {color: #cacaca !important; font-weight: bold; background: url(images/btn-checkboxbg.jpg) no-repeat 0 0; padding-left: 24px; margin-left: 10px;} 
a.filter-checkboxes:active {color: #cacaca; font-weight: bold; background: url(images/btn-checkboxbg_selected.jpg) no-repeat 0 0; padding-left: 24px; margin-left: 10px;} 

回答

1
$('a').click(function(e) { 
    e.preventDefault(); 
    $(this).addClass('active'); 
}); 

尝试上面的代码。除非您在代码段中多次使用对象,否则不必缓存对象。

,创造

a.active{ // 
    // style you want the active link to have 
} 

注意,它应该a.filter-checkboxes.activea.filter-checkboxes:active

Similar question

+0

并将'a.filter-checkboxes:active'更改为'a.filter-checkboxes.active' – barbashov 2013-04-05 15:56:01

0
$('.filter-checkboxes').click(function(e) { 
     e.preventDefault(); 
     $('.active').toggleClass('active'); 
     $(this).toggleClass('active'); 

    }); 

这将删除以前的活动类CSS规则(假设你不能有两种类型同时激活),并在新单击的元素上设置类。另外,我更改了选择器以使其更具体,因此它不会在页面上的每个<a>标记上运行。

也改变了CSS来:

a.filter-checkboxes {color: #cacaca !important; font-weight: bold; background: url(images/btn-checkboxbg.jpg) no-repeat 0 0; padding-left: 24px; margin-left: 10px;}  
a.filter-checkboxes.active {color: #cacaca; font-weight: bold; background: url(images/btn-checkboxbg_selected.jpg) no-repeat 0 0; padding-left: 24px; margin-left: 10px;} 

希望有所帮助。

+0

感谢您的答复。我已经相应地改变了我的CSS(不知道为什么我有:active vs .active)并尝试了两种选择,但仍然不幸成功。做仍然需要“$(document).ready(function(){”?下面我有我的代码: user2105735 2013-04-05 16:45:15

+0

OK,我已经能够成功地应用活动状态的建议(我不得不改变$为jQuery),但排序停止工作(页面不会改变或做任何事情)。需要添加?再次感谢所有帮助! – user2105735 2013-04-05 19:36:13

+0

嘿,所有,再次感谢您的回复ES。再一次,我能够获得活动状态以进行工作,但页面不会改变。除了活动函数之外,还需要添加一个类似var url更改函数的内容吗?或者我只是在做错什么?真的很感谢所有和任何见解。提前致谢! – user2105735 2013-04-07 18:40:23

相关问题