Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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
Javascript jquery追加不工作_Javascript_Jquery_Append - Fatal编程技术网

Javascript jquery追加不工作

Javascript jquery追加不工作,javascript,jquery,append,Javascript,Jquery,Append,我四处寻找,但找不到答案。我在做一个小纸牌游戏,如果创建了某张牌,我需要游戏附加一些文本。附加文本在单击事件上起作用,但不适用于此函数。当控制台记录此类火灾时,该功能被正确触发。我真的不确定我做错了什么 function ghostcheck() { if (hand[0][0] == 'ghost'){ ghostpresent = true; console.log("It's a ghost!!"); $("#infocard").append("<p

我四处寻找,但找不到答案。我在做一个小纸牌游戏,如果创建了某张牌,我需要游戏附加一些文本。附加文本在单击事件上起作用,但不适用于此函数。当控制台记录此类火灾时,该功能被正确触发。我真的不确定我做错了什么

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>");
}
函数ghostcheck(){
如果(手[0][0]=='ghost'){
幽灵现在=真;
log(“它是一个幽灵!!”);
$(“#信息卡”)。追加(哦,不!鬼!你想做什么?

); }

感谢您在这方面的帮助!

我知道您试图附加一些文本的元素是动态创建的

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

希望这有帮助。

函数ghostcheck(){
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>");
    }
}
如果(手[0][0]=='ghost'){ 幽灵现在=真; log(“它是一个幽灵!!”); log(“是否有信息卡?”,$(“#信息卡”)。长度>0); $(“#信息卡”)。追加(哦,不!鬼!你想做什么?

); } }
如果你能在控制台上看到“这是个鬼!!”和“有信息卡吗?真的”, 这意味着追加文本是有效的


我认为另一个事件处理程序正在重设infoCard元素,在ghost check函数附加see text之后。

只是为了确保在html中仔细检查“#inforcard”的拼写是否正确

我的建议是尝试:

//在开始时声明这个
$infoCard=$(“#infoCard”);
函数ghostcheck(){
$infoCard.append(“哦,不!鬼!你想做什么?”;
}
重影检查();

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

var-infoCard=$(“#infoCard”);
函数ghostcheck(){
如果(手[0][0]=='ghost'){
幽灵现在=真;
log(“它是一个幽灵!!”);
infoCard.append(“哦,不!鬼!你想做什么?

”); }
}
您是否有Id为
infocard
的元素?除非您在复制粘贴时出错,否则您缺少一个结束括号。您是在回显html之前运行javascript
,还是使用
$(function(){…})
$(document).ready(function(){…})
或者是它的兄弟姐妹?啊,不,我在复制粘贴时错过了…是的,信息卡在那里。还有其他事件可以向其添加文本,但它们都可以使用单击功能。例如,“单击卡-附加选项”。这一项似乎不起作用…基本上,当绘制新卡时,它会检查卡是否是“鬼”,然后要求玩家通过运行该函数来处理它。控制台日志和所有内容都正常工作,只是追加不起作用。Hn,我尝试了$(document).ready(函数(){…它立即运行了。我会继续处理它。可能就是这样。到JSFIDLE或jsbin的链接会很好:)。然后我们可以检查发生了什么。。嘿,我正在通读它,这可能会有所帮助,但元素不是动态创建的…我会尝试一下!只是为了确认元素是可访问的,请尝试一下,看看控制台上注销了什么。
console.log($(“#信息卡”);
如果输出是“未定义的”,我想这是因为元素不可访问。。这是一个幽灵!!游戏。js:217是否有InfoCard?true Dang:/我找到了一个解决方案,但它不太优雅。基本上,用户在收到消息之前必须单击。恩,我尝试了一下……娜达:/我确实找到了一个不太优雅的解决方案,用户需要在获得新文本之前单击。