jQuery - .click只激活一次

时间:2017-06-29 11:48:12

标签: javascript jquery html

道歉,如果这是一个愚蠢的问题,但我在这里解决了这个问题的答案,并对我的代码进行了更改,但没有进一步的运气。正如您所猜测的那样,主要问题是代码仅在第一次单击时运行,并且在此处不执行任何操作。

这是我的HTML:

<div class="Parent">
    <input id="puck0" class="Pick" maxlength="2">
    <input id="puck1" class="Pick" maxlength="2">
</div>

<p id="test"> TEST </p>

<button id="butt">GOGOGOG</button>

这会创建两个输入框,我想要更改的文本以使其工作,以及触发所有内容的按钮。

这是jQuery代码:

var choice = [0, 0];

$(function() {
    $("#butt").on("click", function() {

        $(".Pick").each(function(input, value) {
            choice[input] = $(this).val();
        });

        $("#test").replaceWith(choice);
    });
});

根据此类其他帖子的建议,我将开头的$(document).ready( function() {...更改为$(function() {...,因为前者仅触发一次。我还将.click更改为.on( "click"...,但没有运气。我甚至尝试将数组创建移动到单击内部,但仍然无法使其工作。它只运行一次:将输入放入数组并替换p,但如果更改输入,它将不再运行并执行相同操作。

我必须遗漏一些非常明显的东西,所以任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

事件(click)工作得很好,问题在于这一行:

$("#test").replaceWith(choice);

它删除(实际上替换了......)p元素,从那时起,p在将来的调用中不存在......

我猜你真正想做的是:

$('#test').html(choice.join());