2011-03-09 86 views
0

我無法顯示錨標記以在Jquery或JavaScript中使用.show()來顯示其本身。 Conn窗口默認是可見的。它隱藏並顯示div,但無法對錨點執行相同操作。我已經手動嘗試改變它在螢火蟲/ IE開發工具,它在那裏工作。當我使用jquery/javascript做它時,它不起作用。Jquery錨定標記顯示問題

下面是HTML代碼:

<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代碼:

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

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

任何幫助將不勝感激!

+1

「javascript:」URIs不好 - http://www.jibbering.com/faq/#javascriptURI。它們也只在'href'屬性中有用,而不在'onclick'中。 – 2011-03-09 17:19:12

+0

你錯過了jQuery革命的笑點:)你不應該使用'onclick' attr或'href =「javascript:...」',因爲這可以通過jQuery和更好的管理來完成。 – Val 2011-03-09 17:21:23

回答

1

內聯CSS display:none是jQuery用來顯示和隱藏的機制overriding

隱藏錨編程方式而不是:

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]')'來改變樣式屬性,所以我不確定你關於重寫的內容。因爲他需要默認情況下隱藏:) – Val 2011-03-09 17:27:39

+0

...您在回答中提到的鏈接與新版本的JQuery無關,因此「過時」。這個錯誤已被糾正。 – 2011-03-09 17:29:58

+0

@Val:我的意思是「重寫」,就像元素上的內聯樣式優先於從祖先繼承的樣式一樣。 – 2011-03-09 17:55:43

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的問題的原因? – 2011-03-10 00:41:45