Javascript jQuery内存游戏– ;如果(text!=text){重新加载页面}

Javascript jQuery内存游戏– ;如果(text!=text){重新加载页面},javascript,jquery,Javascript,Jquery,我正在尝试做一个小内存游戏,我有一些jQuery问题: 游戏只使用代码制作,所以配对是用html符号制作的。我想要的是,如果两个单击的“分幅”的符号不相同,则重新加载页面。 我尝试了使用if($(this.text()!=$(“.active”).text()){ location.reload(); },它似乎不起作用。我是jQueryN00B,如果我犯了明显的愚蠢错误,那么很抱歉^__^ 链接: HTML: 试试这样的 if ($(".active")[0]){ i

我正在尝试做一个小内存游戏,我有一些jQuery问题: 游戏只使用代码制作,所以配对是用html符号制作的。我想要的是,如果两个单击的“分幅”的符号不相同,则重新加载页面。 我尝试了使用
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”):)对不起!你在帖子里写的;)我真傻!