在单个页面上,我希望使用 JQuery UI 的对话框来显示一堆不同的对话框,以便用户可以确认他们已经阅读了特定的屏幕消息以及显示其他一些内容。
我有一个服务器端 PHP foreach() 生成消息并将每个消息放置在 a中,其中包含<div class="mod_message_short">
许多子 div 用于布局/格式化,包括 a<div class="mod_message_modal">
其中包含与该特定消息有关的对话框的内容。
有没有一种方法可以声明autoOpen:false
所有 .mod_message_modal 元素而不必单独声明它们(使用唯一的 id 而不是封装它们的类)?
以下是我到目前为止所得到的:
<script type="text/javascript">
$(function(){
$('.mod_message_modal').dialog({
autoOpen:false
});
$('.mod_message_readmore').click(function(e){
$(".mod_message_short[data-messageid='" + $(this).parents('.mod_message_short').data('messageid') + "']").find('.mod_message_modal').dialog("open");
e.preventDefault();
});
});
</script>
不幸的是,这不起作用,因为 .dialog() 从 DOM 中删除了所有元素,所以当我尝试找到它们以在鼠标单击事件上单独打开它们时,我不能。
我希望解决方案是单独声明这些,但我认为这会生成一堆可能不必要的 javascript。
这似乎与此处发布的问题类似,但 对我的特定问题没有有用的答案。
有任何想法吗?谢谢!