动态选择要打开的模态
Dynamically selecting modal to open
我觉得有一个超级简单的答案,但我正在努力。我用下划线和_。每个渲染一个HTML块(。Datachunk和#mymodal),并迭代对象数组来填充数据。这是我精简后的HTML。
<!--BEGIN datachunk-->
<div class="datachunk"></div>
<!-- END datachunk-->
<!--BEGIN datachunk-->
<div class="datachunk"></div>
<!-- END datachunk-->
<!--BEGIN datachunk-->
<div class="datachunk"></div>
<!-- END datachunk-->
<!--BEGIN Modal-->
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"></div>
<!--END Modal-->
<!--BEGIN Modal-->
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"></div>
<!--END Modal-->
<!--BEGIN Modal-->
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"></div>
<!--END Modal-->
场景如下。点击第一个.datachunk,打开第一个#mymodal。点击第二个.datachunk,然后弹出第二个#mymodal。单击第三个.datachunk并弹出第三个#mymodal。等等…
现在我有:
$(".datachunk").click(function (){
$("#myModal").modal();
});
,但这只弹出第一个模态无论什么。datachunk我点击(如预期的)。
我如何绑定(不确定是否这是正确的术语)每个。datachunk与它相应的模式?
我不能硬编码一个特定的类或id,因为.datachunks和模态的数量是动态的,取决于有多少帖子被拉入。
* * * *更新 让你摇滚起来!我的解决方案是基于你的:
$(".datachunk").each(function(index){
var datachunkIdentifier = "postInfo" + index;
$(this).data("datachunk-class", datachunkIdentifier);
$(".datachunk").eq(index).attr("identifier", datachunkIdentifier);
});
$(".datachunk").each(function(index){
var datachunkIdentifier = "postInfo" + index;
$(this).data("modal-id", datachunkIdentifier);
$(".modal").eq(index).attr("identifier", datachunkIdentifier);
});
这将为每个数据块和模式添加一个名为标识符的属性。现在我不知道如何调用正确的模态。所以点击div.datachunk with identifier="postInfo1"会弹出#myModal with identifier="postInfo1"
新html:<div class="datachunk borderBottom" identifier="postInfo1"></div>
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" identifier="postInfo1"></div>
像这样在document ready
$(".datachunk").each(function(index){
var modalId = "modal" + index;
$(this).data("modal-id", modalId);
$(".modal").eq(index).attr("id", modalId);
});
动态添加数字,然后只跟随答案显示模态。
编辑
我不会使用属性来放置标识符。
根据上面的代码,将模态的标识符放在ID中,那么sroes给出的代码应该可以工作。此外,这比在DOM中像现在这样有重复的id要好(id="myModal")。
$(".datachunk").on("click", function(){
var modalId = $(this).data("modal-id");
$("#" + modalId).modal();
});
如果您使用上面的代码,这应该足以让它工作
您可能想要这样做:
<!--BEGIN datachunk-->
<div class="datachunk" data-modal-id="myModal1"></div>
<!-- END datachunk-->
<!--BEGIN datachunk-->
<div class="datachunk" data-modal-id="myModal2"></div>
<!-- END datachunk-->
<!--BEGIN datachunk-->
<div class="datachunk" data-modal-id="myModal3"></div>
<!-- END datachunk-->
<!--BEGIN Modal-->
<div id="myModal1" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"></div>
<!--END Modal-->
<!--BEGIN Modal-->
<div id="myModal2" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"></div>
<!--END Modal-->
<!--BEGIN Modal-->
<div id="myModal3" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"></div>
<!--END Modal-->
然后JS:
$(".datachunk").click(function (){
$("#" + $(this).attr('data-modal-id')).modal();
});
明白了!谢谢sroes和Leite!!
$(".datachunk").click(function (){
$("#" +$(this).attr("identifier")).modal();
});
相关文章:
- 在下拉列表选择中显示模态
- 在选择(rails_admin)时更改时在模态窗口中添加新字段
- AngularJS Bootstrap UI,将数据传递到模态的问题.已选择卡未定义
- 引导模态块选择元素
- Twitter 引导日期时间选择器在模态中未正确显示
- DatePicker 在完整视图中提供对象不支持属性或方法“日期选择器”,但不支持模态形式的属性或方法
- 日期选择器未在模态中打开
- 将数据id显示为<选择>boostrap模态
- 动态选择要打开的模态
- 我如何得到模态窗口弹出时,我选择一个时间槽fullCalendar
- 不能在可拖动模态窗口内选择任何内容
- 如何将一个选择值传递给Angularjs的模态表单
- UI引导日期选择器弹出不工作与模态和控制器
- Rails 4模态窗口(弹出窗口):如何防止在选择下拉项时接近
- 当我的模态窗口关闭时,从图像中删除图像区域选择
- 如何设置'选择'列表中的模态对话框-流星
- 如何根据模态选择更新输入
- 使用jquery-confirm的Angular应用.如何在模态中插入选择
- 在有效的选择选项上显示模态
- Angularjs 表显示来自模态选择和复选框