2011-06-11 38 views
0

我想用JavaScript來實現一個功能。我在我的html頁面上有一個圖標(div標籤)。我想實現一旦它變成另一個圖標時點擊它的功能。但是,當我點擊那個改變的圖標時,它應該恢復到原來的圖標。Jquery點擊功能只被調用一次

現在,這是問題所在,圖標會在第一次點擊時變成另一個圖標,但它不會在第二次點擊時恢復爲原始圖標。實際上,當我第二次點擊它時,它的jquery的click函數沒有被調用。

有什麼想法?

以下是代碼:

$("#volume-slide-img").hide(); 

$("#volume-icon").click(function() { 
    if (document.getElementById('volume-slide-img').style.display == 'none') { 
     $("#volume-slide-img").show(); 
    } 
    else { 
     $("#volume-slide-img").hide(); 
    } 
}); 
+0

該代碼爲我工作。問題可能在別的地方。你有完整的代碼嗎?和PLZ格式更好,也許使用jsfiddle.net – pixelfreak 2011-06-11 02:42:41

回答

2

你可以讓你的代碼變得簡單許多。試試這個:

$('#volume-slide-img').hide(); 
$('#volume-icon').click(function(){ 
    $('#volume-slide-img').toggle(); 
}); 
0

我想你想要做的是在單擊時切換#音量 - 圖標上的類。

I mocked it up on jsFiddle.當圖標被點擊時,toggleClass會按照它說的去做,切換一個類(如果它被應用,則不應用它,如果沒有,則應用它)。該類可用於設置圖標。

雖然我可能會錯過一些東西......你說「我有一個圖標」,並且你想做點什麼「當我點擊它」,但你的代碼示例似乎改變了某些東西其他點擊圖標時。

+0

沒有它只是一個圖標,點擊顯示圖標+新圖標(默認情況下隱藏)。這有任何意義嗎? – Vik 2011-06-11 02:55:32

+0

我這麼認爲。在這種情況下,您的原稿應該可以工您的腳本位於頁面上的哪個位置? – 2011-06-11 03:07:50

0

@Don Zacharias釘了它,但我發現了一些漂亮的音量圖標,所以這裏有一個類似的方法來處理他的背景圖像。

http://jsfiddle.net/pxfunc/xbUQZ/

HTML:

<div id="volume-icon" title="click to toggle!"></div> 

CSS:

#volume-icon { 
    width:256px; 
    height:256px; 
    cursor:pointer; 
    background-image:url('http://icons.iconarchive.com/icons/icons-land/vista-multimedia/256/Volume-Hot-icon.png') 
} 
#volume-icon.mute { 
    background-image:url('http://lh3.ggpht.com/_uU5cLRayUdQ/S48MYDVnjlI/AAAAAAAADik/GWYRNg06mhE/Volume-Normal-Red-icon.png'); 
} 

的jQuery:

$('#volume-icon').click(function() { 
    $(this).toggleClass('mute'); 
}); 
+0

這是光滑的! – 2011-06-11 03:06:31