那麼有幾件事情我不知道,如果你是知道的,所以我覺得有我的結束部分責任確保他們被提及。它們是你的文章中的一些語法錯誤,它們阻止了它的工作,所以我不覺得有必要更新你對你正在使用的JQuery的看法以及你的選擇器選擇。
首先,我會爲所有div的類結構添加一個全部目標,這樣可以節省一些代碼行。在製作過程中,下載所有訪問者的代碼越少越好,因爲在網頁上點擊足夠多的代碼後,即使一小段代碼也會失控。不得不提供服務速度,所以必須處理三個獨立的jquery選擇,而不是一個。
我會改變的HTML ...
<body>
<div id='content-container' class='boxes'>
Content Container
</div>
<div id='account' class='boxes'>
account
</div>
<div id='account2' class='boxes'>
account2
</div>
<input id="validateButton" type="submit" value="Boolean">
</body>
這種方式可以簡單地與目標$(".boxes");
所有div ......我不會推薦進入使用$("div");
接下來的習慣中我會將JQuery更改爲更多JQuery友好代碼。使用純Javascript中的onload
事件在正確的時間處理DOM對象的加載時處理JQuery驅動的函數並不總是有用。因此,您應該使用$(document).ready(handler)
正確處理此負載事件,以防萬一它會導致您遇到問題。這個準備好的事件的更常見的簡寫是一個簡單的$(function() { });
包裝。
的代碼的其餘部分可以被重新安排到這個....
var isLoggedIn = false; //<--Instantiate to false, make global to window level scope
//Load event Corrected For JQuery
$(function() {
$(".boxes").hide(); //<--Hide on load
//Add A Proper Updated Click Event To Button
$("#validateButton").click(function() {
isLoggedIn = true; //<--Should include real functionality not hand coded to true
checkLoginAndRespond(); //<--Validate Login Status
});
});
function checkLoginAndRespond() {
//If Logged, Show
if(isLoggedIn) {
$(".boxes").show();
//Else Don't
} else { $(".boxes").hide(); }
} //end function
最後的版本。新版本的JQuery已經有一段時間沒有發佈,似乎也沒有出現,所以使用最新版本是一個安全的選擇,因爲它的語法有數千頁的幫助,而且非常穩定。我會推薦2.0或更高版本的JQuery中的任何東西。
*「布爾函數的設置是否正確?」否:未捕獲的SyntaxError:意外的標記{'。瞭解有關'if ... else'語句的更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if...else – 2014-10-09 00:07:44
'else if',not only' else'或者只是刪除else部分的條件部分,但是你的小提琴也是錯誤的,因爲你的js代碼已經在onload事件中加載了 – 2014-10-09 00:07:52
@Patrick Evans'說了什麼,你會把所有的JavaScript放在你的'onload = function(){/ *在這裏* /}'。 jQuery'onload'等價物看起來像'$(function(){/ * in here * /})',它是最簡單的形式。 – PHPglue 2014-10-09 00:37:52