2013-05-03 4 views
0

제품 카테고리를 개발 중입니다. 내가 원하는 것은 하나의 카테고리를 클릭하기 만하면 현재의 카테고리 배경이 변경됩니다. 일반 카테고리처럼 간단합니다. 그러나 나는 그것을 성취하는 데 어려움을 겪고있다. 누구든지이 끈적 끈적한 문제를 도와 줄 수 있습니까? 다음은 jquery와 css를 사용하여 현재 카테고리의 색상을 변경하는 방법은 무엇입니까?

카테고리를 생성하는 코드입니다

while ($cat = mysql_fetch_assoc($res)) 
    { 
     $cats[] = $cat; 
    } 

} 


$list_items = array(); 

foreach ($cats as $cat) 
{ 


    if ((int) $cat['parent'] !== (int) $parent) 
    { 
     continue; 
    } 

    $current = $cat['categoryID']; 
    $list_items[] = '<nav><li class ="heading">'; 

    $list_items[] = '<a href="javascript:void(0)" id ='. $cat['categoryID'].' onClick="getPage('. $cat['categoryID'] . ','.$cat['parent'].')">'; 
    $list_items[] = $cat['name']; 
    $list_items[] = '</a></li>'; 
    $list_items[] = '<ul class ="content">'; 
    $list_items[] = category_list($cat['categoryID']); 
    $list_items[] = '</ul>'; 

    $list_items[] = '</nav>'; 



    $list_items[] = ''; 

} 


$list_items = implode('', $list_items); 


if ('' == trim($list_items)) 
{ 
    return ''; 
} 


return '<div><ul>' . $list_items . '</ul></div>'; 

이에 대한 나의 현재 질의는 다음과 같습니다 :

jQuery(document).ready(function() { 
jQuery(".content").hide(); 

jQuery(".heading").click(function() 
{ 
jQuery(this).next(".content").slideToggle(500,function(){ 
$(this).parent().find('li.heading').css('background-color','green'); 
$(this).find('.heading').css('background-color','red'); 
}); 
}); 
}); 

HTML :

<div class="catbottom"> 
      <?php include("category.php");echo category_list();?> 
     </div> 

가 대단히 감사합니다.

프로세스는 아래와 같다 : HTML의

, 나 카테고리를 생성하기 위해 사용된다 category.php을 포함한다.
각 카테고리에 대해 사용자가 카테고리 목록을 클릭하면 해당 항목이 "컨테이너"라는 div에 표시됩니다.

+0

주석 처리 된 줄을 제거하고 jsfiddle에 최종 마크 업을 제공하여 사용자가하려는 일을 쉽게 이해할 수 있도록하십시오. – Alex

+1

이제 알았습니다. – user2295136

+0

그것은 무엇입니까? 죄송합니다, jsfiddle을 (를) 처음 사용했습니다 – user2295136

답변

3

나는 이것이 필요한 것을 달성해야한다고 생각합니다.

<nav> 
    <ul> 
    <li class ="heading"> 
     <a href="#">rando link</a> 
    </li> 
     <ul class ="content" style="display: none;"> 
      <li>blah</li> 
     </ul> 
    </ul> 
</nav> 

그리고 그것을 확인하는 바이올린 : http://jsfiddle.net/h2ufk/

$(document).on('click', '.heading', function() { 
    $(this).toggleClass("active"); 
    $(this).next("ul.content").slideToggle(); 
}); 

나는 "활성"라는 클래스는, 또한, 나는이 HTML 전원이 답변 (모든 추측을)를 기준으로 CSS를 준

+0

고마워, 내가 그것을 시도합니다 – user2295136

+0

@ tymeJV, 아주 매끄러운입니다! 좋은 작업! 이 데모에서 누락 된 유일한 것은 each()를 사용하는 것일 수 있습니다. – blackhawk

+0

와우, 고마워! 당신은 정말로 굉장합니다! – user2295136

관련 문제