2010-03-27 151 views
-1

嘿,我盡我所能想出如何去這樣做的衰落:jQuery的圖像與標籤

我有2個選項卡。自動選擇頁面加載標籤頁1時。這顯示標籤爲1.0透明,而tab2保持在0.7。

一旦用戶點擊了tab2,tab1會變爲0.7透明度,而tab2會變爲1.0。但是,我似乎無法做到這一點!

這裏是我的代碼:

<script type="text/javascript"> 
function checkTab(theTab) 
{ 
    $('#tab1').fadeTo(250, 0.70); 
    $('#tab2').fadeTo(250, 0.70); 

    if ($("#tabActive").val() == theTab) 
    { 
     $(theTab).fadeTo(250, 1); 
    } 
} 

$(document).ready(function() { 
    $('#tab1').hover(function() {$(this).fadeTo(250, 1)}, function() {checkTab('#tab1')}); 
    $('#tab2').hover(function() {$(this).fadeTo(250, 1)}, function() {checkTab('#tab2')}); 

    $('#tab2').fadeTo(250, 0.70); 
    $('#tabActive').val('tab1'); 
}); 
</script> 

<li class="stats"><img src="images/Stats.png" name="nav1" width="70" height="52" id="tab1" onclick="$('#tabActive').val('tab1');" /></li> 
<li class="cal"><img src="images/cal.png" name="nav1" width="70" height="52" id="tab2" onclick="$('#tabActive').val('tab2');" /></li> 

<input name="tabActive" id="tabActive" type="text" /> 

任何幫助將是巨大的! :)

大衛

回答

0

你輸入值tab1tabActive.val(),但你檢查#tab1。決定是否要或不想在選擇的#=)

$(document).ready(function() { 
    $('#tab1').hover(function() {$(this).fadeTo(250, 1)}, function() {checkTab('#tab1')}); 
    $('#tab2').hover(function() {$(this).fadeTo(250, 1)}, function() {checkTab('#tab2')}); 

    $('#tab2').fadeTo(250, 0.70); 
    $('#tabActive').val('#tab1'); 
}); 

(而實際上,一個更清潔的方式做到這一點可能是隻輸入一個數字(1或2),然後生成字符串在檢查功能。但這只是我認爲字符串在JavaScript看起來醜陋,並試圖避免它們...)

+0

哼,我做到了這一點,但它似乎沒有幫助(我結束了所有的「#」 ) 當頁面加載tab1時爲1.0,而tab2爲0.70,這是正確的。但是如果我把我的房子懸停在tab2上,然後關閉,tab1就會到0.7,tab2也是如此。 當我將鼠標懸停在tab1上然後關閉時,tab1會回到1.0。 – StealthRT 2010-03-27 17:42:30

+0

您永遠不會更改'$('#tabActive')'的值,所以如果您希望標籤2在簡單的鼠標懸停後保持突出顯示(而不是點擊或其他選項來選擇標籤),您必須更改懸停呼叫中的值。 – 2010-03-27 23:08:24