更新:问题已解决:
由于在页面加载后创建了“有问题的”元素,因此事件委托确保所有这些元素都绑定到 jQuery 事件。
原帖:
我得到了这段代码:
while ($row=mysqli_fetch_array($res)){
if($cont>3){
$cont=1;
$txt=$txt.'</tr><tr>';
}
$txt=$txt.'<td>';
$txt=$txt.'<figure><img src="'.$row['picture'].'"/></figure>';
$txt=$txt.'<figcaption>'.$row['pictureDesc'].'</figcaption>';
$txt=$txt.'<div class="dialogInfoOpener" style="border:solid red 1px;">Details</div>';
$txt=$txt.'</td>';
$cont++;
}
$txt=$txt.'</tr>';
echo $txt;
它是与 JS 文件 (Ajax) 一起工作的 PHP 文件的一部分,以便通过连接字符串来“构造”由 3 个单元格的行组成的表格。对于每个单元,从数据库中加载一些数据。每个单元格都放置一个div
具有给定类( dialogInfoOpener
) 和特定内联样式的 a。应该单击该div
元素以打开一个 jquery 对话框 - 这是问题开始的地方。
我的对话框的代码:
HTML
<div id="dialogInfo" title="Product description">Info to be put in here.</div>
jQuery
$("#dialogInfo").dialog({
autoOpen: false,
buttons:[{
text: "Close", click :
function(){
$(this).dialog("close");
}
}]
});
$(".dialogInfoOpener").click(function(event){</s>
$("#dialogInfo").dialog("open");</s>
});</s>
该代码适用dialogInfoOpener
于页面上找到的任何具有类的元素,除了属于刚刚构建的表的任何元素。单击这些 div 时,它不会做任何事情(为每个单元格正确设置了类和样式属性)。jQuery 似乎没有响应给 div 的类名。为什么? div
我希望很清楚。
我将不胜感激任何有用的建议。