那么有几件事情我不知道,如果你是知道的,所以我觉得有我的结束部分责任确保他们被提及。它们是你的文章中的一些语法错误,它们阻止了它的工作,所以我不觉得有必要更新你对你正在使用的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