Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jQuery赢得';t删除记忆游戏的配对_Php_Javascript_Jquery_Html_Css - Fatal编程技术网

Php jQuery赢得';t删除记忆游戏的配对

Php jQuery赢得';t删除记忆游戏的配对,php,javascript,jquery,html,css,Php,Javascript,Jquery,Html,Css,我正在使用jQuery和PHP创建一个内存游戏(根据找到的脚本),基本上我要做的是使两张卡匹配后,它们都被移除。但是,我使用两个不同的图像进行配对。在HTML格式中,每张卡片如下所示: <div class="card {toggle:'imagename'}"> <div class="off"></div> <div class="on {toggle:'imageid'}">

我正在使用jQuery和PHP创建一个内存游戏(根据找到的脚本),基本上我要做的是使两张卡匹配后,它们都被移除。但是,我使用两个不同的图像进行配对。在HTML格式中,每张卡片如下所示:

<div class="card {toggle:'imagename'}">                 
<div class="off"></div>                 
<div class="on {toggle:'imageid'}"></div>
</div>

本质上,当选择两张卡时,jQuery应该检查id是否匹配。最初它应该检查图像是否匹配,但由于是两个不同的图像,我不能这样做(它只显示一个)。以下是jQuery:

function matchingCards(event, params){
    $cards = $("."+params.css_class+".on:visible");
    $.each($cards, function(index, card){
        var $card = $(card);
        $card.trigger("card_removed");
        $card.parent(".card").unbind("*").before("<div class='card_ph'></div>").remove();
        $card = null;
});

$cards_left = $("#game_board>.card");
if ( $cards_left.length == 0 ){
    $(document).trigger("game_won", {});
    /* 
     * quickFlip has a problem when working in IE: when the last 
     * element bound was removed the problem is caused by the bound 
     * resize event on the window and is causing 
     * the end game get stuck when the game is over...
     */
    $(window).unbind("resize");
}
$cards_left = $cards = null;
};

function checkCards(){
$on_cards = $("#game_board .card>.on:visible");
if ( $on_cards.length == 2 ){
    $(document).trigger("player_made_move");
    // Get the first object css class
    var css_class = $on_cards.parent(".card").metadata()["toggle"];
    var $card = $(this);
    var this_card = $card.children(".on").metadata()["toggle"];
    $matched_cards = $on_cards.filter("."+this_card);
    var event_name = "no_match";
    if ( $matched_cards.length == 2 ){
        event_name = "found_match";
    }
    if ( css_class == css_class ){
        event_name = "no_match";
    }
    $(document).trigger(event_name, {css_class: css_class});
    $matched_cards = null;
}
clearTimeout(chk_cards_timeout);
chk_cards_timeout = null;
$on_cards = null;
};
功能匹配卡(事件、参数){
$cards=$(“+params.css_class+”.on:可见);
$。每个($卡,功能(索引,卡){
var$卡=$(卡);
$card.trigger(“已移除卡”);
$card.parent(“.card”)。在(“”)之前取消绑定(“*”)。删除();
$card=null;
});
$cards_left=$(“#game_board>.card”);
如果($cards\u left.length==0){
$(文件).trigger(“game_won”,{});
/* 
*quickFlip在IE中工作时出现问题:上次
*元素绑定已删除问题是由绑定引起的
*调整窗口上的事件大小并导致
*游戏结束后,游戏结束时会被卡住。。。
*/
$(窗口)。取消绑定(“调整大小”);
}
$cards_left=$cards=null;
};
功能检查卡(){
$on_cards=$(“#game_board.card>.on:visible”);
如果($on_cards.length==2){
$(文档).trigger(“玩家移动”);
//获取第一个对象css类
var css_class=$on_cards.parent(“.card”).metadata()[“toggle”];
var$card=$(此);
var this_card=$card.children(“.on”).metadata()[“toggle”];
$matched_cards=$on_cards.filter(“.”+此_卡);
var事件名称=“不匹配”;
如果($matched_.length==2){
事件名称=“找到匹配项”;
}
如果(css_类==css_类){
事件名称=“不匹配”;
}
$(document).trigger(事件名称,{css\u类:css\u类});
$matched_cards=null;
}
clearTimeout(chk\U卡\U超时);
chk_卡超时=空;
$on_卡=空;
};
任何帮助都将不胜感激

其他信息:

这两个图像对具有相同的图像名称,我刚刚为其中一个添加了“_desc”作为CSS类名(即,一个图像标题为“i1”,另一个标题为“i1_desc”)

当找到一对卡时,它们不会重置到原始位置或消失。

尝试此流程

1.单击卡片时…将类别更改为“打开”。再次单击时,该类将更改为默认的“隐藏”

…每张卡都有一个id,如image_name+desc…因此两张卡将具有相同的id

2.每次单击后,使用jQuery each()函数搜索“open”类并获取元素的id

3) 比较这两个ID,如果它们相似,请再次使用each()函数删除元素。如果不使用each()函数,则只删除第一个元素

注:别忘了数数、追踪ID、得分……等等

…每个()函数都在运行