gpt4 book ai didi

javascript - JQuery : . dialog() 不适用于 .classe 选择器的下一个元素

转载 作者:行者123 更新时间:2023-11-29 23:19:16 24 4
gpt4 key购买 nike

我使用 php while 循环来生成一些带有小描述的项目。每个项目都有相同的类别,并且前面有它的图像。

目标是在我单击相应图像时打开一个包含项目描述的对话框。

这是我所做的:

用所有图片生成所有项目:

        while($result = $req->fetch()) {?>
<img src="./css/images/icon/<?=$result['category']?>/<?=$result['rarity']?>" alt="<?=$result['object']?>" title="<?=$result['object']?>" class="obj">
<p class="descr_obj">
Name : <?=$result['objet']?><br><br>
Rarity : <?=str_replace(".png", "", $result['rarity'])?><br><br>
Description :<br>
<?=$result['description']?>
</p>

<?php }?>

生成 JQuery 对话框:

$(".descr_obj").dialog({
autoOpen: false
})

$(".obj").click(function(){
text = $(this).next(".descr_obj").text();
$(text).dialog("open");
});

但是什么也没有出现,控制台也没有显示任何错误...

你能帮帮我吗?提前谢谢你。

最佳答案

几个问题。主要的一个是你从来没有真正告诉对话框打开(通过使用 .dialog("open")。第二个是你最终会得到大量的对话框 - 一个用于每个 img,因为您正在重复该段落。descr_obj 类的每个实例都将获得它自己的。

尝试这样的事情(我的 php 很烂,所以它可能是错误的):

while($result = $req->fetch()) {?>
<img src="./css/images/icon/<?=$result['category']?>/<?=$result['rarity']?>"
alt="<?=$result['object']?>"
title="<?=$result['object']?>"
class="obj"
data-name="<?=$result['objet']?>"
data-rarity="<?=str_replace(".png", "", $result['rarity'])?>"
data-desc="<?=$result['description']?>">
<?php }?>
<p class="descr_obj">
Name : <span class="name"></span><br><br>
Rarity : <span class="rarity"></span><br><br>
Description :<br>
<span class="desc"></span>
</p>

但这是 JavaScript 最终的样子:

$(function() {
let dialog = $(".descr_obj").dialog({
autoOpen: false
});

$(".obj").click(function() {
for(let prop of Object.keys(this.dataset)) {
dialog.find(`span.${prop}`).html(this.dataset[prop]);
}
dialog.dialog("open")
});
});
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<img src="/image/4fDk5.png" data-name="one" data-rarity="Super Rare" data-desc="Amazing" class="obj">
<img src="/image/xBUJX.png" data-name="two" data-rarity="Common" data-desc="Meh" class="obj">
<p class="descr_obj">
Name : <span class="name"></span><br><br>
Rarity : <span class="rarity"></span><br><br>
Description :<br>
<span class="desc"></span>
</p>

关于javascript - JQuery : . dialog() 不适用于 .classe 选择器的下一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51370921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com