务必将模态框的 HTML 代码放在文档的最高层级内(也就是说,尽量作为 body 标签的直接子元素),以避免其他组件影响模态框的展现或功能。
一、代码模板
<button class="btn btn-primary" data-toggle="modal" data-target="#con-close-modal">发布活动</button>
<div id="con-close-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">
<div class="modal-dialog" id="fabu">
<div class="modal-content">
<form data-name="" role="form" id="yz_fb" onsubmit="return false">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="road_title">发布活动</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="field-3">活动类型</label>
<div for="field-3">
<select class="form-control" id="action" name="action">
<option value="1">路演</option>
<option value="2">比赛</option>
<option value="3">学习</option>
</select>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div><!-- /.modal -->
二、点击发布活动按钮,一个漂亮的谈框就出来了。
注意:data-target属性,指向了model的id,所以点击按钮,model就会弹出来了。(重点)
三、用js来控制谈框。
如下代码:
-
显示:
$('#con-close-modal').modal('show');
-
隐藏:
$('#con-close-modal').modal('hide');
这里有个坑:
必须用.modal('hide')来隐藏关闭谈框,如果用原生的.hide()将会关闭谈框之后但是屏幕依然被锁定无法操作
因为前端插件用多了,jq引入俩次,导致冲突,会导致js报错:.modal()不是一个方法,这个时候你就去试着删掉一个jq的引入即可解决
-
开关:
$('#con-close-modal').modal('toogle');
-
事件:
$('#con-close-modal').on('hidden', function () {// do something…});
注意:我这边用到了href属性,这是让model去 remote一个url。当然 ,你可以把你要的内容,直接写在model-body里面。
三、认真看model的div结构,你就会明白,model-body是代表内容,model-header是头部,那么如果要在底部加两个按钮,那么就得用下面的代码了。
<div class="modal-footer">
<a href="#" class="btn">关闭</a>
<a href="#" class="btn btn-primary">保存</a>
</div>
注意:如果要给model设置宽度,那必须得加上布局。就是把model放在下面的代码块中,并且设置model的宽度。style="width:500px".对了,你还不可以用span样式直接放到class里面。。
<div class="container"></div>