小编Mil*_*o-J的帖子

Jquery - .forEach()在IE8中不起作用

我为其中一个平台创建了这个小小的交互 - http://jsfiddle.net/S79qp/426/

除IE8外,它在所有浏览器中都能正常工作.当我运行控制台时,似乎是这部分它有问题......

Array.prototype.forEach.call(l, function(item) {
        a.push(jQuery(item).text());
   });
Run Code Online (Sandbox Code Playgroud)

有人可以给我看一个IE8友好的替代品,所以我可以使它兼容所需的版本?

html javascript jquery internet-explorer-8

27
推荐指数
2
解决办法
3万
查看次数

随机映射div

我正在创造一种新的"打鼹鼠"风格的游戏,孩子们必须根据问题打出正确的数字.到目前为止它真的很顺利,我有一个计时器,计算正确和错误的答案,当游戏开始时,我有一些称为"字符"的div,它们在设定的时间随机出现在容器中.

我遇到的问题是,因为它是完全随机的,有时"字符"看起来彼此重叠.有没有办法组织它们,以便它们出现在容器中的设置位置,并且在它们出现时不会重叠.

这里我有代码将div映射到容器..

    function randomFromTo(from, to) {
        return Math.floor(Math.random() * (to - from + 1) + from);
}

function scramble() {
    var children = $('#container').children();
    var randomId = randomFromTo(1, children.length);
    moveRandom('char' + randomId);
}

function moveRandom(id) {
    var cPos = $('#container').offset();
    var cHeight = $('#container').height();
    var cWidth = $('#container').width();
    var pad = parseInt($('#container').css('padding-top').replace('px', ''));
    var bHeight = $('#' + id).height();
    var bWidth = $('#' + id).width();
    maxY = cPos.top + cHeight - bHeight - pad;
    maxX = cPos.left + cWidth …
Run Code Online (Sandbox Code Playgroud)

javascript math jquery

12
推荐指数
2
解决办法
466
查看次数

改变动画速度

我正在创造一种新的"打鼹鼠"风格的游戏,孩子们必须根据问题打出正确的数字.到目前为止它真的很顺利,我有一个计时器,计算正确和错误的答案,当游戏开始时,我有一些称为"字符"的div,它们在设定的时间随机出现在容器中.

我已经拿走了"播放"按钮并用"简单","中等"和"硬"取而代之.单击模式时,我希望速度发生变化.三个按钮共享"game_settings"类

这是处理动画的代码

function randomFromTo(from, to) {
    return Math.floor(Math.random() * (to - from + 1) + from);
}

function scramble() {
    var children = $('#container').children();
    var randomId = randomFromTo(1, children.length);
    moveRandom("char" + randomId);
}

var currentMoving = [];

function moveRandom(id) {
    // If this one's already animating, skip it
    if ($.inArray(id, currentMoving) !== -1) {
        return;
    }

    // Mark this one as animating
    currentMoving.push(id);

    var cPos = $('#container').offset();
    var cHeight = $('#container').height();
    var cWidth = $('#container').width();
    var bWidth = $('#' …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

12
推荐指数
1
解决办法
1627
查看次数

禁用单击事件直到动画完成

在我的游戏中,我有一个填充了单词的网格.要拼写单词,用户必须单击名为"拖动"的一侧的字母.单击一个字母时,它会动画到网格上的位置.

我遇到的问题是用户可以快速点击字母,这会使程序崩溃.为了解决这个问题,我想禁用点击事件,直到动画完成.

在过去,我之前使用过一个setTimeOut函数,但它不是一个可靠的方法,因为时间都取决于浏览器的速度.

这是点击事件:

$('.drag').on('click', function (e) {
    e.preventDefault();
    var target = $('.highlight-problem .drop-box:not(.occupied):first');
    var targetPos = target.parents('td').position();
    console.log(targetPos);
    var currentPos = $(this).offset();
    var b = $(this);
    if (target.length) {
        target.addClass("occupied");
        $(".occupied").parent(".flip-wrapper").addClass("flipped");
        var clonedObject = b.clone()
        if (b.data("letter") == target.parents('td').data("letter")) {
            clonedObject.addClass("right-letter");
            target.addClass('right-letter');
            setTimeout(function () {
                hitSound.play();
            }, 550);
        } else {
            clonedObject.addClass("wrong-letter");
            target.addClass('wrong-letter');
            setTimeout(function () {
                missSound.play();
            }, 550);
        }
        clonedObject.appendTo("table").css({
            position: "absolute",
            top: currentPos.top,
            left: currentPos.left
        }).stop().animate({
            top: targetPos.top,
            left: targetPos.left
        }, "slow", function () { …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

7
推荐指数
1
解决办法
4107
查看次数

完成编号更改后,jQuery/JavaScript程序中断

在我创建的拼写游戏中,有一个填充了单词的网格.游戏的目的是通过单击侧面的字母来拼写单词,这些字母可以激活到网格中的空白区域.如果要拼写单词,则会突出显示单词,因此用户可以查看下一步的位置.游戏的目的是在网格中拼写所需数量的单词以完成游戏.我通常将它设置为2,但刚刚将其更改为3,并且在我拼写第二个单词后程序仍然断开.

    if (score.right == 3) {
    ................
    ................
}
Run Code Online (Sandbox Code Playgroud)

通常当你正确拼写单词时,我会使用"click.trigger"函数移动到网格中的下一个突出显示的单词.在2个正确的程序之后,程序要么不进入下一个程序,要么返回到最后一个程序,并且不允许您单击字母.

setTimeout(function() {
                    jQuery('.next-question').trigger('click');
                }, 1500);
Run Code Online (Sandbox Code Playgroud)

我试图通过破发点但似乎无法找到问题.有人可以帮助我让它再次运作并告诉我哪里出错了吗?

在我的游戏中,没有提示图片或提示声音,所以要找到你必须使用控制台的突出显示的单词.尝试回答两个然后它会崩溃.

这是一个破碎的小提琴:http://jsfiddle.net/smilburn/Dxxmh/101/

这是一个很好的前一个工作得很好:http://jsfiddle.net/smilburn/Dxxmh/100/(某些类名可能已更改)

javascript jquery

7
推荐指数
1
解决办法
452
查看次数

防止jQuery中出现"过多的递归"错误

编辑**

我有这个点击事件

$('.next-question').click(function () {

    $('td').removeClass('highlight-problem');
    var r = rndWord;
    while (r == rndWord) {
        rndWord = Math.floor(Math.random() * (listOfWords.length));
    }
    $('td[data-word="' + listOfWords[rndWord].name + '"]').addClass('highlight-problem');
    $('td[data-word=' + word + ']').removeClass('wrong-letter').removeClass('wrong-word').removeClass('right-letter');
    var spellSpace = $('td[data-word=' + listOfWords[rndWord].name + ']').hasClass('right-word');
    if (spellSpace) {

        $('.next-question').trigger('click');

   } else {

        $("#hintSound").attr('src', listOfWords[rndWord].audio);
        hintSound.play();
        $("#hintPic").attr('src', listOfWords[rndWord].pic);
        $('#hintPic').show();
        $('#hintPicTitle').attr('title', listOfWords[rndWord].hint);
        $('#hintPicTitle').show();

    }

});
Run Code Online (Sandbox Code Playgroud)

在控制台中进行调试时,它表示此时too much recursion它处于某种无限循环状态.我认为这是因为声明中的trigger("click")事件if,因为我在网上看到了类似的东西.

基本上,我想说,如果给定的单词有类,right-word那么继续(因此触发),否则......

还有另一种方法来写它不会崩溃吗?

这是一个小提琴:http://jsfiddle.net/Dxxmh/112/

说明:单击右侧的字母拼写网格中突出显示的区域(帮助您拼写单词的图像不适用于小提琴,因此您必须使用控制台拼写它们,通过查找td)

javascript recursion jquery loops if-statement

5
推荐指数
1
解决办法
3万
查看次数

单击时更改按钮的值

我有一个笑话列表,我想在一个盒子里显示.当页面加载时,我想在框中随机显示一个.然后,当我单击该框时,我希望它再次将值更改为列表中的另一个随机值.

目前我无法让它工作,无法解决我出错的地方.我的HTML如下:

<input class="box" type="button" value"" />
<ul>
    <li>How much do pirates pay to get their ear pierced? &lt;/br&gt; A buck anear!</li>
    <li>How do pirates talk to one another? &lt;/br&gt; Aye to aye!</li>
    <li>What did the sea say to the pirate captain? &lt;/br&gt; Nothing, it justwaved!</li>
    <li>What is a pirates favourite shop? &lt;/br&gt; Ar-gos!</li>
    <li>When is it the best time for a pirate to buy a ship? &lt;/br&gt; Whenit is on sail!</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

该脚本是:

    $(document).ready(function () {

    var list = …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

0
推荐指数
1
解决办法
735
查看次数