0

我想知道我是否可以得到一些帮助。(首先,我想道歉..请原谅我的英语不好...) 我正在尝试制作一款游戏,让玩家可以从中选择几个选项。总是有两个正确的选择。我想知道如何让玩家有机会通过单击鼠标(不是 Ctrl+单击)来选择第二个(或第三个)选项,并通过单击它来取消选择其中一个选项(再次不是 Ctrl+单击)我尝试了一些我读过的东西,比如e.metakey = false,但恐怕我不明白它的全部意义,所以可能是我用错了方法:S

$('.option').bind("mousedown", function (e){
    e.metaKey = false;
});
$('.option').selectable({
    selecting:function(event, ui){
        $(this).attr('isSelected','True');
    },
    selected: function(event, ui){
        $(this).animate({
            opacity: 0.50,
            backgroundColor: "red"
        }, 500);
    },
    unselecting: function(event, ui){
        if ($(this).attr('isSelected') == 'True'{
            $(this).attr('isSelected','False');
        };
    },
    unselected: function(event, ui){
        $(this).animate( {
            opacity:1,
            backgroundColor: 'orange'
        }, 500);
    }
});

有谁知道我可以做到这一点的正确方法?(如果我找到更好的解释,我会很高兴e.metaKey)任何信息都会非常有帮助!:)

谢谢!

HTML:

<div id="choices">
<div class="option_holder_big option ui-selectable masonry-brick" number="8">
    <div class="draggable ui-selectee" number="8">
        <div class="option_square ui-selectee">...</div>
        //...
    </div>
</div>
<div class="option_holder option ui-selectable" number="2">
    <div class="option_square draggable ui-selectee" number="2">...</div>
</div>
<div class="option_holder option ui-selectable" number="3">
    <div class="option_square draggable ui-selected" number="3">...</div>//selected one
</div>
<div class="option_holder_big option ui-selectable" number="6">
    <div class="draggable ui-selectee" number="6">
        <div class="option_square ui-selectee">...</div>
        <div class="option_square ui-selectee">...</div>
    </div>
</div>

在选择了 number=3 的选项之后,我添加了 html 代码的一部分。(例如)这是你需要的吗,@AndrewPeacock?PS/我注意到不是“选项” div,而是内部有“ui-selected”类 - 我想这很正常......

4

2 回答 2

2

我找到了解决我的问题的方法。首先,我应该让我的外部('#choices')div 可选,以便允许选择内部 div('.option')。其次,e.metakey 可以解决 Ctrl 问题,但不是这样我用过。我可能也没有很好地解释这个问题 - 对此感到抱歉。所以,我真的很感谢那些发布答案并试图帮助我的人。非常感谢!:)

我给你我的代码的工作副本,以防它对某人有用......

$("#choices").bind("mousedown", function( e ) {
    e.metaKey = true;
}).selectable({
    filter: "div.option",
    selected:function(event, ui){
        ...
    },
    unselected:function(event, ui){
        ...
    } 
});
于 2012-06-15T08:22:03.287 回答
0
于 2012-06-14T16:03:45.683 回答