引导模式只对远程数据源启动一次
bootstrap modals only firing once with remote datasource
我有一个带有项目列表的表,每个项目都有一个带状态列表的<select>
。流程如下。
- 当状态更改时,它应该激发一个模态
- 模态正在拉入ajax数据,并且运行良好
- 然后,用户可以在模式框中单击"继续"或"取消"
这是第一次工作,但一旦模态被忽略,模态就不会再加载第二次。数据正在更新——我可以在inspect元素中看到它,但模态本身不会触发不止一次。
这是相关代码:
HTML:
<select class="status form-control" data-id="14" data-ref="PT6F7SW514" name="status">
<option value="0" selected="selected">Pending</option>
<option value="1">Approved</option>
<option value="2">Rejected</option>
</select>
...
<div class="modal fade" id="modal" tabindex="-1" role="dialog" aria-labelledby="modalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Modal Goes Here</h4>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Send</button>
</div>
</div>
</div>
</div>
JS:
$(document).ready(function(){
$('.status').change(function(){
var status = $(this);
var val = $(status).val();
var id = $(status).attr('data-id');
var ref = $(status).attr('data-ref');
$('.modal-body').load('/ajax/status/' + ref + '/' + val);
$('#modal').modal();
});
});
同样,这是一个包含多个项目的表,每个项目都有一个.status
选择字段。我可以在控制台中看到第二次尝试激发模态时我得到了以下错误:
Uncaught TypeError: undefined is not a function
与JS中的此行关联:
$('#modal').modal();
如果我注释掉$('.modal-body').load()
,它就起作用了。
我尝试将它重写为一个单独的ajax调用,而不是使用.load()
,但我也遇到了同样的问题。似乎只要我操纵".modal body",它就失去了激发模态的能力。
您可以使用
$('#modal').modal('show'); // or .modal('hide')
显示或隐藏模式
我发现了问题。这实际上不是模态的问题。我所激发的视图(使用Laravel)还包括<head>
和<body>
标签(模态用于电子邮件预览)。这破坏了功能。
相关文章:
- 如何在Javascript中设置函数在上一次结束时启动
- 一次点击,两次'单击'事件已启动
- 节点 js 在启动时调用函数一次
- 点击一次的按钮没有启动
- 当您滚动到特定页面位置时,如何执行此操作,该功能将启动一次
- 每 60 秒仅启动一次事件 (JavaScript)
- 如何让动画在视口中启动一次
- 每 1 分钟启动一次计时器 Jquery
- 引导模式只对远程数据源启动一次
- JQuery背景颜色更改(.animate或.css)在重新启动后只能工作一次
- setTimeout一直在启动,如何使它只启动一次
- 单击一次即可启动多个闪烁按钮
- 一次启动多个jQuery动画
- 自定义倒计时脚本,每8小时重新启动一次
- 对于只能启动一次的DOJO小部件,最佳实践命名约定是什么
- 在页面加载时启动Fancybox,而无需单击一次
- 为什么在多次启动$.click()时,如果链接被单击一次,它会捕获它不止一次
- 每 2 秒启动一次功能,每 5 秒启动一次
- 定义回调并立即启动一次的最佳方式
- $(document).ready在IE中只启动一次,但在Firefox中有效