2013-02-21 81 views
1

我目前使用兩個函數來顯示和隱藏我正在處理的項目上的元素。結合兩個js函數來顯示/隱藏切換

一個函數用於當元素當前爲.display = 'block',另一個用於當元素當前爲.display = 'none'

function hide1(id) { 
    ele = document.getElementById(id); 
if (ele.style.display == 'block') 
    ele.style.display = 'none'; 
else 
    ele.style.display = 'block'; } 

function hide2(id) { 
    ele = document.getElementById(id); 
if (ele.style.display == 'none') 
    ele.style.display = 'block'; 
else 
    ele.style.display = 'none'; } 

我所有的優化,我想知道如果有兩個功能結合爲一體,或者如果它的精細,讓他們因爲他們是一個方式。

乾杯,

+0

你的函數(hide1和hide2)已經做同樣的事情,無論;使用id = id切換元素。 – James 2013-02-21 23:48:39

+0

本質上他們這樣做,但一個功能將需要兩次點擊(onclick事件),另一個只需一個。 http://jsfiddle.net/Yhs6y/ – George 2013-02-22 00:09:58

+0

這兩個函數中的每一個函數在被調用一次之後都會執行相同的操作:如果元素被隱藏,則顯示它,如果元素被顯示,則隱藏它。你只是檢查財產不同,並有不同的順序你的ifs。 – James 2013-02-22 03:33:59

回答

2
function hide(id) { 
    ele = document.getElementById(id); 
    ele.style.display = (ele.style.display == 'block')?'none':'block'; 
} 
+0

你介意解釋一下嗎?它看起來像我的原始'函數hide1'一樣,除非我需要這些。這個簡寫對我來說都是新的:) – George 2013-02-21 23:32:20

+0

它結合了你的功能。如果顯示元素,則將'style.display'更改爲''none'',反之亦然。簡式將取代4您的線。 – Alex 2013-02-21 23:34:24

1
function ChangeDisplay(id,prevDisplay,newDisplay) { 
ele = document.getElementById(id); 
if (ele.style.display == prevDisplay) 
ele.style.display = newDisplay; 
else 
ele.style.display == prevDisplay; 
} 

這應該做你的工作