2011-08-11 4 views
0

저는 PHP로 구축하고 있고 mySQL에서 동적으로 데이터를로드하는 페이지가 있습니다. 그것은 사용자가 클릭하는 목록 항목을 사용하여 데이터베이스에 _POST를 발생 시키므로 지금보고있는 페이지의 CSS를 사용자 정의 할 수 없습니다. 하이라이트로 클릭 한 <li>의 CSS 클래스를 동적으로 설정하는 방법이 있는지 궁금합니다. 문제는 다른 목록 항목을 누르면 이전 항목의 강조 표시를 해제해야한다는 것입니다. 누구든지이 문제를 해결하는 가장 좋은 방법을 제공합니까?PHP : _POST 및 CSS, 활성 링크 표시 방법

+0

http://jsfiddle.net/qYUAz/ 당신이 목록의 항목을 클릭 말은 AJAX를 통해 POST 요청을 전송하고 한 번 갔지에 하나의 목록 항목을 선택하려면 n을 클릭 했습니까? – Phil

답변

1

같은 것을 여기

// var context is a previously identified container for the list items 

var items = context.getElementsByTagName('li'); 
for (var i = 0; i < items.length; i++) { 
    items[i].addEventListener('click', function() { 
     // do AJAX stuff 

     // remove the "highlight" class from all list items 
     for (var j = 0; j < items.length; j++) { 
      var classname = items[j].className; 
      items[j].className = classname.replace(/\bhighlight-class-name\b/i, ''); 
     } 

     // set the "highlight" class on the clicked item 
     this.className += ' highlight-class-name'; 
    }, false); 
} 

데모 (난 당신이 이미 방법 중 AJAX 부분이있어 가정거야) 추가, 당신이 AJAX를 통해 POST 요청을 제출하고 가정

+0

이것은 완벽하게 작동했습니다. 고맙습니다! – Zakman411

0

Ajax를 사용하고있는 것 같습니다. JS 스크립트가이 작업을 수행합니다. 여기에 내가

  • 빨리 클릭이 수신 될 때 내 모습이 LIS에 클릭 이벤트를 바인딩

    • 는 고유 한 ID로 문양을 만들 JS에
    • 사용 JQuery와/프로토 타입/XYZ 툴킷이 시도하는 것입니다 이벤트 타겟에서 클래스 이름을 설정하거나 다시 설정하려고 시도하십시오.

    자세한 내용은 jQuery에서이 예제를 제안합니다. http://jsfiddle.net/jYdMB/을 -

  • 0

    jQuery를 대답 :

    <style type="text/css"> 
    #myNav .active{ 
        color:red; 
        font-weight:bold; 
    } 
    </style> 
    
    
    <ul id="myNav"> 
        <li><a href="#1">link 1</a></li> 
        <li><a href="#2">link 2</a></li> 
        <li><a href="#3">link 3</a></li> 
    </ul> 
    
    <script type="text/javascript"> 
    $('#myNav a').click(function(){ 
        $('#myNav a').removeClass('active'); 
        $(this).addClass('active');  
    }); 
    </script>