2013-03-08 59 views
1

我的要求很簡單,它必須檢查變量並相應地顯示/隱藏類。它位於sharepoint發佈頁面上。 使用以下代碼段不起作用。Java腳本顯示和隱藏

if (source = 'show') 
{ 
$('.classshide').hide(); 
} 
else 
{ 
$('.classsshow').hide(); 
} 

它的工作原理,只有當源變量是節目,它應該工作的otherway過,當它不等於顯示或等於隱藏,請隱藏classshow。

+1

你需要改變'如果(來源=「秀」)''來,如果(來源==「秀」)' – jonhopkins 2013-03-08 18:17:24

+0

甚至沒有在第一種情況下工作,如果我使用「==」到位'='。 – svs 2013-03-08 18:20:21

+0

你確定'source'是正確的值嗎? – jonhopkins 2013-03-08 18:28:46

回答

2

您的平等測試是錯誤的。

if (source = 'show') 

應該

if (source == 'show') 

,也可能是

if (source === 'show') //if source is a string and you don't want type coercion 
0

請使用嚴格比較===。速度更快,因爲在比較變量的value時,不需要轉換type

編輯:

// get what the current state of hide/show is 
var source = $('.classhide').length === 0 ? 'show' : 'hide'; 

if (source === 'show') { 
    $('.classshide').hide(); 
} else { 
    $('.classsshow').hide(); 
} 
+0

不工作。現在,它甚至不適用於第一種情況。什麼都沒發生。 – svs 2013-03-08 18:27:54

+0

@svs然後我有一種感覺,當它用於比較時,'source'沒有用實際值定義。 – sweetamylase 2013-03-08 18:31:23

0

您需要使用的平等(==)或全等(===)運算符來source變量 「秀」 在你的if語句比較。因爲你提到需要顯示以及隱藏類,我猜你想要交替顯示哪些類,所以我相應地調整了其餘的代碼。

if (source === 'show') 
{ 
    $('.classshide').hide(); 
    $('.classsshow').show(); 
} 
else if (source === 'hide') 
{ 
    $('.classsshow').hide(); 
    $('.classshide').show(); 
} 
else // for some reason source is neither 'show' or 'hide' 
{ //default to the logic for if it is 'hide' 
    $('.classsshow').hide(); 
    $('.classshide').show(); 
} 
+0

出於某種原因,==或===不適合我。它至少檢查第一個條件,如果我只使用=,否則失敗。 – svs 2013-03-08 18:32:58

+0

你是什麼意思,它不工作?你是否在if塊之前設置變量,並且將它設置爲正確的值? – jonhopkins 2013-03-08 18:35:20

+0

該變量正在頁面中定義,我只是將其拉入我的腳本來檢查是否阻塞。 – svs 2013-03-08 18:39:26