2011-03-09 3 views
0

Jquery 또는 javascript에서 .show()을 사용하여 표시 할 앵커 태그를 표시 할 수 없습니다. 연결 창은 기본적으로 표시됩니다. div를 숨기고 표시하지만 앵커와 동일한 작업을 수행 할 수는 없습니다. 수동으로 firebug/IE dev 도구에서 변경하려고 시도했지만 거기에서 작동합니다. jquery/javascript를 사용하면 작동하지 않습니다. 어떤 도움이 크게 감사합니다Jquery 앵커 태그 표시 문제

function connHide() 
{ 
    $('#connTab').show(); 
    $('#connWindow').hide(); 
} 

function connShow() 
{ 
    $('#connWindow').show(); 
    $('#connTab').hide(); 
} 

:

여기
<a href="javascript:connShow();" id="connTab" style="display:none; text-decoration:none;"></a> 
<div id="connWindow">Conn Window 
    <div id="closeButton" onclick="javascript:connHide();"></div> 
</div> 

는 jQuery 코드입니다 :

다음은 HTML 코드입니다!

+1

"javascript :"URI가 좋지 않습니다 - http://www.jibbering.com/faq/#javascriptURI. 그것들은'onclick'이 아닌 'href' 속성들에서만 관련이 있습니다. –

+0

당신은 jQuery 혁명의 요점을 놓치고 있습니다 :) 당신은'onclick' attr이나'href = "javascript : ..."를 사용하지 말아야합니다. 이것은 jQuery로 할 수 있고 잘 관리 할 수 ​​있기 때문입니다. – Val

답변

1

인라인 CSS display:noneoverriding jQuery가 표시 및 숨기기에 사용하는 메커니즘입니다.

프로그래밍 대신 앵커 숨기기

HTML :

<a href="#" id="connTab" style="text-decoration:none;"></a> 
<div id="connWindow"> 
    Conn Window 
    <div id="closeButton"></div> 
</div> 

스크립트 : 도움이

$(function() { // on document load 
    $('#connTab').css('display', 'none'); 

    // I'm going to replace your inline JS with event handlers here: 
    $('#connTab').click(function() { connShow(); return false; }); 
    $('#closeButton').click(function() { connHide(); }); 
}); 

function connHide() { 
    $('#connTab').css('display', ''); 
    $('#connWindow').css('display', 'none'); 
} 

function connShow() { 
    $('#connWindow').css('display', ''); 
    $('#connTab').css('display', 'none'); 
} 

희망.

+0

당신은'.css()'또는 이벤트'.attr ('style', '[values]')를 사용하여 스타일 attr을 변경할 수 있습니다. 그래서 당신이 무엇에 대해 오버라이드 할 지 모르겠습니다. 그가 기본적으로 숨겨져 있어야하기 때문에 :) – Val

+0

... 당신이 답변에서 언급 한 링크는 JQuery의 최신 버전과 관련이 없으므로 "오래된 것"입니다. 이 버그가 수정되었습니다. –

+0

@Val : 요소의 인라인 스타일이 조상에서 상속 된 스타일보다 우선하는 것과 같은 방식으로 "재정의"를 의미합니다. –

1

onclick 이벤트의 경우 javascript:을 지정할 필요는 없습니다. 로 변경 시도 :

<div id="closeButton" onclick="connHide();"></div> 
나는 또한 다음 첫 번째 줄 바꿀 것

:

<a href="#" onclick="connShow(); return false;" id="connTab" style="display:none; text-decoration:none;"></a> 
4

왜뿐만 아니라 jQuery를에 클릭 이벤트를 바인딩하지를

function connHide() 
{ 
    $('#connTab').show(); 
    $('#connWindow').hide(); 
} 

function connShow() 
{ 
    $('#connWindow').show(); 
    $('#connTab').hide(); 
} 

$(document).ready(function() { 
    $("#contab").click(function() { 
     connShow(); 
     return false; 
    }); 
    $("#connWindow").click(function() { 
     connHide(); 
    }); 
}); 
+0

좋은 생각이긴하지만 어떻게 OP 문제의 원인을 조사 할 수 있습니까? –