2013-12-24 5 views
1

Мне нужно, чтобы мы свернули меню, щелкнув ссылку, и эта ссылка будет иметь класс с именем «active».Получить свернутое меню по активной ссылке JQuery & Bootstrap

Я получил это, только если я нажму основную ссылку, соответствующую ID и uri из url. Но при нажатии ссылки, расположенной внутри этой ссылки, происходит сбой меню.

Основная проблема заключается в том, что в jquery я не могу получить предупреждение и проверить, был ли применен класс или идентификатор.

<script type="text/javascript"> 

    if($('#subcategoryactive').length){ 
     alert('Active'); 
    } 
    if($('.list-subgroup-item active').length) 
{ 
    alert('Active'); 
} 

</script> 

<h4>Categories</h4> 
      <div class="list-group categories"> 
      <?php foreach($categories as $category): ?> 
      <a href="<?php echo site_url() . '/products/catalog_list/' . $category['id'] ; ?>" class="list-group-item"><?php echo $category['name']; ?><span class="glyphicon glyphicon-chevron-right"></span></a> 
      <div id="collapseOne" class="panel-collapse collapse <?php if($category['id'] == $this->uri->segment(3)){ echo 'in';}else{ echo 'out';} ?>"> 
      <?php foreach($category['sub_categories'] as $subcategory): ?> 
      <div class="list-subgroups"> 
       <a id="subcategory<?php if($subcategory['id'] == $this->uri->segment(3)){ echo 'active';} ?>" href="<?php echo $subcategory['id']; ?>" class="list-subgroup-item <?php if($subcategory['id'] == $this->uri->segment(3)){ echo 'active';} ?>"><?php echo $subcategory['name']; ?></a> 
      </div> 
      <?php //endif; ?> 
      <?php endforeach; ?> 
      </div> 
      <?php endforeach; ?> 
      </div> 

ответ

1

первое, что вам нужно обернуть ваши коды Jquery с помощью DOM готова событие и использовать метод on попробуйте изменить коды Jquery к следующему и дайте мне знать

<script type="text/javascript"> 
$(function(){ // add this 
    $('div.list-group').on('click', 'a.active', function(){ 
     //if($('#subcategoryactive').length) { 
     // alert('Active'); 
     //} 
     //if($('.list-subgroup-item active').length) { 
      alert('Active'); 
     //} 
    }); 
}); 
</script> 
+0

Вот именно, это сворачиваются все меню и оставить незаваленно, thx Moes – Dario

Смежные вопросы