jquery追加不起作用

时间:2016-01-15 01:49:21

标签: javascript jquery append

我四处搜寻但找不到答案。我正在制作一个小卡片游戏,如果创建某张卡片,我需要游戏附加一些文字。附加文本在单击事件上起作用,但不适用于此功能。正确触发该功能,因为控制台记录并触发此类功能。我不确定我做错了什么?

function ghostcheck() {
    if (hand[0][0] == 'ghost'){
    ghostpresent = true;
    console.log("It's a ghost!!");
    $("#infocard").append("<p>Oh no! A ghost! What would you like to do?<br><br></p>");
}

感谢您对此事的任何帮助!

4 个答案:

答案 0 :(得分:1)

我知道您尝试附加某些文本的元素是动态创建的。

您可以使用jQuery的live()事件来处理此类问题。

Link here

希望这会有所帮助..

答案 1 :(得分:0)

function ghostcheck() {
    if (hand[0][0] == 'ghost'){
        ghostpresent = true;
        console.log("It's a ghost!!");
        console.log("Is there InfoCard? ", $("#infocard").length > 0);
        $("#infocard").append("<p>Oh no! A ghost! What would you like to do?<br><br></p>");
    }
}

如果你能看到&#34;它是鬼魂!&#34;和#34;有InfoCard吗?真&#34;在控制台, 这意味着追加文字正在发挥作用。

我认为另一个事件处理程序在追加重影检查功能后会重置infoCard元素。

答案 2 :(得分:0)

只是要确保仔细检查'#inforcard'是否在你的html中拼写正确。

我的消化是尝试:

//declare this at the start
$infoCard = $('#infoCard');



function ghostcheck() {
  $infoCard.append('<p>Oh no! A ghost! What would you like to do?<br><br></p>');
}

ghostcheck();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="infoCard">
  ghost
</div>

并查看是否有效

答案 3 :(得分:0)

尝试类似这样的方法。有时-我不知道为什么-您必须将元素分配给变量,并确保在所有地方都将该变量用作引用。

var infoCard = $("#infocard");

function ghostcheck() {
    if (hand[0][0] == 'ghost'){
    ghostpresent = true;
    console.log("It's a ghost!!");
    infoCard.append("<p>Oh no! A ghost! What would you like to do?<br><br></p>");
   }
}