Javascript jQuery内存游戏– ;如果(text!=text){重新加载页面}
我正在尝试做一个小内存游戏,我有一些jQuery问题: 游戏只使用代码制作,所以配对是用html符号制作的。我想要的是,如果两个单击的“分幅”的符号不相同,则重新加载页面。 我尝试了使用Javascript jQuery内存游戏– ;如果(text!=text){重新加载页面},javascript,jquery,Javascript,Jquery,我正在尝试做一个小内存游戏,我有一些jQuery问题: 游戏只使用代码制作,所以配对是用html符号制作的。我想要的是,如果两个单击的“分幅”的符号不相同,则重新加载页面。 我尝试了使用if($(this.text()!=$(“.active”).text()){ location.reload(); },它似乎不起作用。我是jQueryN00B,如果我犯了明显的愚蠢错误,那么很抱歉^__^ 链接: HTML: 试试这样的 if ($(".active")[0]){ i
if($(this.text()!=$(“.active”).text()){
location.reload();
}
,它似乎不起作用。我是jQueryN00B,如果我犯了明显的愚蠢错误,那么很抱歉^__^
链接:
HTML:
试试这样的
if ($(".active")[0]){
if ($(this).text() != $(".active").text()) {
location.reload();
}
else {
$(".active").removeClass("active");
}
}
试试这样的
if ($(".active")[0]){
if ($(this).text() != $(".active").text()) {
location.reload();
}
else {
$(".active").removeClass("active");
}
}
这里有几件事出了问题。首先,在
if($(“.active”)[0])
块中声明match()
函数,这是不正确的。您应该在if
块之外声明它,甚至在openCard
函数之外,并使用match()
调用它
此外,在将对象存储在变量中后,还需要传入该对象,否则将无法访问该对象。大概是这样的:
var thisCard = $(this).text();
var activeCard = $(".active").text();
$(document).ready(function() {
$('td').click(openCard);
function openCard(){
var that = $(this);
that.addClass('opened');
that.find('a').addClass('visible');
if ($(".active")[0]){
match(that);
}
else {
that.addClass("active");
}
}
function match(that){
if (that.text() != $(".active").text()) {
location.reload();
}
else {
$(".active").removeClass("active");
}
}
});
这里有几件事出了问题。首先,在if($(“.active”)[0])
块中声明match()
函数,这是不正确的。您应该在if
块之外声明它,甚至在openCard
函数之外,并使用match()
调用它
此外,在将对象存储在变量中后,还需要传入该对象,否则将无法访问该对象。大概是这样的:
var thisCard = $(this).text();
var activeCard = $(".active").text();
$(document).ready(function() {
$('td').click(openCard);
function openCard(){
var that = $(this);
that.addClass('opened');
that.find('a').addClass('visible');
if ($(".active")[0]){
match(that);
}
else {
that.addClass("active");
}
}
function match(that){
if (that.text() != $(".active").text()) {
location.reload();
}
else {
$(".active").removeClass("active");
}
}
});
您已经在if($(“.active”)[0])
块中定义了function match()
,但您没有在任何地方调用它。这就是为什么,它永远不会进入该函数的内部
顺便说一句,尝试使用FireBug(如果您使用Firefox)或开发人员工具(如果您使用chrome)来调试javascript,以便了解问题所在。这将使调试更容易。您已经在if($(“.active”)[0])
块中定义了函数匹配()
,但您没有在任何地方调用它。这就是为什么,它永远不会进入该函数的内部
顺便说一句,尝试使用FireBug(如果您使用Firefox)或开发人员工具(如果您使用chrome)来调试javascript,以便了解问题所在。这将使调试更容易。再次隐藏互动程序不是更好吗,这样您就不必不断刷新页面了?我不明白,您确定要重新加载页面吗?为什么?你尝试过严格的比较==代码>?您从未执行函数匹配
。实际上,这里不需要函数声明。移除它并将主体直接放入if
块中。尝试将这些存储在变量中,如var a=$(this).text();var b=$(“.active”).text();并提醒它,看看它得到了什么。如果再隐藏一次磁贴,这样你就不必不断刷新页面了,不是更好吗?我不明白,你确定要重新加载页面吗?为什么?你尝试过严格的比较==代码>?您从未执行函数匹配
。实际上,这里不需要函数声明。移除它并将主体直接放入if
块中。尝试将这些存储在变量中,如var a=$(this).text();var b=$(“.active”).text();并提醒它,看看它得到了什么。为什么要使用var“that”?没有特别的原因,这只是我当时的想法。您可能应该将其更改为更有意义的内容。我不是指var名称,而是使用变量。我对jQuery很陌生,所以我想知道为什么在这里它更可取?而不是写“$”(“this”):)对不起!你在帖子里写的;)我真傻!你为什么要用var“that”?没有特别的原因,这只是我当时的想法。您可能应该将其更改为更有意义的内容。我不是指var名称,而是使用变量。我对jQuery很陌生,所以我想知道为什么在这里它更可取?而不是写“$”(“this”):)对不起!你在帖子里写的;)我真傻!