2013-10-11 4 views
1

클릭,자바 스크립트 내가 어떤 메시지를 밀어이 코드를

자바 스크립트를 차단

$(function() { 
    $('#bottom_menu li a').click(function(e) { 
     e.preventDefault(); 
     animateSlider(this.hash); 
    }); 

    function animateSlider(hash) { 
     if (!$('#container div.open').length) { 
      if (hash == '#about') { 
       openPopup(hash); 
      } 
      if (hash == '#contact') { 
       openPopup(hash); 
      } 
     } else { 
      if (hash == '#about') { 
       openAndClose(hash) 
      } 
      if (hash == '#contact') { 
       openAndClose(hash) 
      } 
     } 
    } 

    function openPopup(hash) { 
     $(hash + '_popup').slideToggle().addClass('open'); 
    } 

    function openAndClose(hash) { 
     if ($(hash + '_popup').hasClass('open')) { 
      $($(hash + '_popup')).slideToggle().removeClass(); 
     } else { 
      $('#container div.open').slideToggle().removeClass(); 
      $(hash + '_popup').slideToggle().addClass('open'); 
     } 
    } 
}); 

HTML

<nav id="men55"> 
    <ul id="bottom_menu"> 
     <li style="text-align:left;"> 
      <a href="#about"><font face="din" size="4">onde <br />estamos</font></a> 
     </li> 
     <li style="text-align:left;"> 
      <a href="#contact"><font face="din" size="4">osnossos<br />parceiros</font></a> 
     </li> 
     <li style="text-align:left;"> 
      <a href="index2.php?web=news" <?php if($web == "news") {echo 'class="corrente"';} ?>><font face="din" size="4">news <br />press</font></a> 
     </li> 
    </ul> 
</nav> 

문제이며, 경우 HREF = # 접촉 또는 href = #에 대해서는 잘 작동하지만 href = index2.php를 넣으려면 web = teste는 작동하지 않습니다 ... 아무 일도 일어나지 않습니다 ... 문제는 t입니다. 그는 javascript가 nav 또는 li 내부의 클릭을 차단합니다

+2

당신이 해시 확인하기 때문에 -'이. 해시. – Elen

답변

2

href 속성이 [href^="#"]을 사용하여 시작하는 앵커 태그 만 선택하도록 간단하게 변경합니다. 변경 :

$('#bottom_menu li a').click(function(e) { ... }); 

사람 :

$('#bottom_menu li a[href^="#"]').click(function(e) { ... }); 

이 누구 href 재산 "#"로 시작하지 않는 링크를 무시합니다 :

#about /* Prevented */ 
#contact /* Prevented */ 
index2.php /* Ignored */ 
index2.php?web=teste /* Ignored */ 
index2.php#test /* Ignored */ 
+0

고마워요,하지만 미안하지만 당신이 말한대로 코드를 바꿀 수는 없어요 ... 제 원래 코드를 바꾸고 저를 보내 주시겠습니까? 다시 한 번 감사드립니다 – Ricardo

+0

@Ricardo는 질문에 게시 한 코드의 두 번째 줄에'$ ('# bottom_menu li a')'입니다. 단순히 그것을 $ ('# bottom_menu li a [href^= "#"]')'로 변경하십시오. 내 대답을 더 명확하게 편집했습니다. –

+0

완벽한 친구, 고마워. – Ricardo

관련 문제