2014-07-15 3 views
0

"링크"를 두 번 클릭하면 페이지로 리다이렉트되지만, 메뉴를 드롭 다운 또는 올라가서 클릭 할 때마다, CSS 코드jQuery를 사용하여 "a : active"라는 클래스를 토글 할 때의 문제

a:active span { 
    color:#bdbcae; 
} 

이 적용됩니다. 내가 뭘 하려는지는 링크를 두 번 클릭하면 색이 바뀌어 페이지로 리다이렉트되도록하는 것입니다. 한 번만 클릭하면 메뉴 만 드랍됩니다. 링크를 기본 색상으로 유지하고 싶습니다.

내가보고 있었다 그 아래에있는 내 기능의 코드가이

if ($(this).data('clicks')==2){ 
     $(this).data('clicks', 0); 
     window.open("accomplishments.html"); 
} 
내가 if 문이 내 $(this).addClass("active")의 라인을 따라 뭔가를 추가하는 생각

을 달성하는 것입니다하지만 작동하지 않습니다 - 그리고 이 경우가 아니라면 언제든지 $(this).removeClass("active")을 만들지 만이 중 아무 것도 작동하지 않습니다. 아래 내 전체 코드를 참조하십시오.

Here's my Bootply.

HTML :

<div class="navbar navbar-inverse navbar-fixed-top"> 
      <div class="container"> 

       <button class="navbar-toggle" data-toggle="collapse" data-target=".navHeaderCollapse"> 
        <span class="icon-bar"></span> 
        <span class="icon-bar"></span> 
        <span class="icon-bar"></span> 
       </button> 

       <div class="collapse navbar-collapse navHeaderCollapse"> 

        <ul class="nav navbar-nav navbar-right">        
         <li class="dropdown"> 
          <a href="page.html" class="dropdown-toggle" data-toggle="dropdown"><span>Link</span><b class="caret"></b></a> 
          <ul class="dropdown-menu"> 
           <li><a href="#">1</a></li> 
           <li><a href="#">2</a></li> 
          </ul><!-- END: "dropdown-menu" -->  
         </li><!-- END: "dropdown" --> 

        </ul><!-- END: "collapse navbar-collapse navHeaderCollapse" --> 
       </div><!-- END: "container" --> 
      </div><!-- END: "container" --> 
     </div><!-- END: "navbar navbar-inverse navbar-fixed-top" --> 

CSS :

a span { 
    color:#ffffff; 
} 
a:hover *.caret { 
    color:#bdbcae; 
} 
a:active span { 
    color:#bdbcae; 
} 
a:active *.caret { 
    color:#bdbcae; 
} 

jQuery를 :

$(document).on("click", "span", function() { 
     if(typeof $(this).data('clicks') == 'undefined') { 
      $(this).data('clicks', 1); 
      }else { 
      $(this).data('clicks', $(this).data('clicks')+1); 
     } 
     if ($(this).data('clicks')==2){ 
       $(this).data('clicks', 0); 
       window.open("page.html"); 
     } 
    }); 

$(document).click(function(event) { 

    if(!$(event.target).closest("span").length) {   
      $("span").data('clicks', 0); 
    }   
}); 
+2

'addClass' 작동합니다. CSS를'a : active' 대신'a.active'로 바꾸면됩니다. – Barmar

+0

나는 당신의 제안을 따랐지만 여전히 아무것도하지 않았습니다. 내 [수정 된 코드] (http://www.bootply.com/bcuXnwD3h4)를보고 무슨 일이 일어나고 있는지 볼 수 있겠습니까? 감사. – michael

+0

'$ (this) .window.open()'이 (가) 유효하지 않습니다. jQuery 객체에는'window' 속성이 없습니다. 'window.open()'을 사용하십시오. – Barmar

답변

2

나는 "클릭"과 "dblclick"이벤트가 당신을 도울 것입니다 사용하여 생각, 왜 사용자를 리디렉션 할 경우 특정 색상을 설정 하시겠습니까?

jQuery를 더블 클릭 이벤트 : http://api.jquery.com/dblclick/

+0

제안에 감사하지만 더블 클릭해도 동일한 결과를 얻을 수 없습니다. 색상이 변경되어 사용자가 리디렉션되기 전에 다른 링크에서 발생하는 색상 변경과 일관되게 유지되기를 원합니다. – michael

관련 문제