- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 Bootstrap 模式时遇到一些问题。第一次调用我的模态时,它位于左侧约 20px 处,但之后它根据 .position()
正确定位
这是我的代码:
HTML:
<div class="modal hide" id="AddCommentChat">
<div class="modal-body">
<div class="my-element"></div>
</div>
</div>
<div class="modal hide" id="MyModalWindow"></div>
JavaScript:
$('.my-element').click(function(){
var that = $(this);
$('#MyModalWindow').on('shown.bs.modal', function(){
$(this).position({
my: 'left top',
at: 'right bottom',
of: that
});
$('.modal-backdrop').css('background-color', 'transparent');
}).modal();
});
更新:通过添加以下代码解决了问题:
$('#ModalEditingDeleting').css({
left: 0,
top: 0
});
最终代码为:
$('.comment-manage').click(function(){
$('#ModalEditingDeleting').css({
left: 0,
top: 0
});
var that = $(this);
$('#ModalEditingDeleting').on('shown.bs.modal', function(){
$(this).position({
my: 'left top',
at: 'right top',
of: that
});
$('.modal-backdrop').css('background-color', 'transparent');
}).modal();
});
感谢您的帮助!
最佳答案
该脚本当前显示一个简短的Flash of Unstyled Content (FOUC)因为您正在点击 显示 事件,根据 Bootstrap Modal Events :
show.bs.modal
is fired when the modal has been made visible to the user
(will wait for CSS transitions to complete).
它在第一次尝试后似乎工作的唯一原因是因为position()
函数会将位置保留为标记的一部分
所以这个:
<div class="modal" >
会变成这样:
<div class="modal" style="top: 34px; left: 104px;" >
它会从上次停下的地方继续,然后尝试重新定位。但是,只有当模态不需要在请求之间更改时,这才有用。
相反,您需要点击 show.bs.modal
事件,该事件将在元素显示之前触发并此时重新定位.
问题在于,此时模式是隐藏的,根据 jQuery UI - Position 上的文档:
jQuery UI does not support positioning hidden elements.
作为解决方法,根据此 Stack Overflow question on jQuery ui positioning keep changing ,您可以将模态样式设置为不可见 block 以帮助计算位置:
.modal {
display: none,
visibility: visible
}
此外,无需为每次单击按钮重新附加 .on()
监听器。初始化应该在开始时发生,然后依靠事件处理来调用正确的方法。这确实引入了额外的问题,即您无法再通过函数作用域将按钮传递到事件处理程序中。
因此,您需要将调用按钮作为数据参数添加到模式中,如下所示:
$('#MyModalWindow').data("source", $(this))
因此您可以在事件处理中读取它,如下所示:
.position({
my: 'left top',
at: 'right bottom',
of: $(this).data("source")
})
$('#MyModalWindow').on('show.bs.modal', function(e) {
$(this)
.css({
'display': 'block',
'visibility': 'hidden'
})
.position({
my: 'left top',
at: 'right bottom',
of: $(this).data("source")
})
.css({
'visibility': 'visible'
});
})
$('.my-element').click(function(){
$('#MyModalWindow')
.data("source", $(this))
.modal();
});
.modal-backdrop.modal-backdrop {
background-color: transparent
}
<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/css/bootstrap.css" rel="stylesheet"/>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.2/js/bootstrap.js"></script>
<button type="button" class="btn btn-primary my-element" >
Open modal
</button><br/><br/>
<button type="button" class="btn btn-primary my-element">
Open modal
</button>
<div class="modal fade" tabindex="-1" role="dialog" id="MyModalWindow" >
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-body">
Modal Content
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">
Close
</button>
</div>
</div>
</div>
</div>
关于jquery - shown.bs.modal 中的函数仅在第二次调用模态后才起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30334648/
我想做的是让 JTextPane 在 JPanel 中占用尽可能多的空间。对于我使用的 UpdateInfoPanel: public class UpdateInfoPanel extends JP
我在 JPanel 中有一个 JTextArea,我想将其与 JScrollPane 一起使用。我正在使用 GridBagLayout。当我运行它时,框架似乎为 JScrollPane 腾出了空间,但
我想在 xcode 中实现以下功能。 我有一个 View Controller 。在这个 UIViewController 中,我有一个 UITabBar。它们下面是一个 UIView。将 UITab
有谁知道Firebird 2.5有没有类似于SQL中“STUFF”函数的功能? 我有一个包含父用户记录的表,另一个表包含与父相关的子用户记录。我希望能够提取用户拥有的“ROLES”的逗号分隔字符串,而
我想使用 JSON 作为 mirth channel 的输入和输出,例如详细信息保存在数据库中或创建 HL7 消息。 简而言之,输入为 JSON 解析它并输出为任何格式。 最佳答案 var objec
通常我会使用 R 并执行 merge.by,但这个文件似乎太大了,部门中的任何一台计算机都无法处理它! (任何从事遗传学工作的人的附加信息)本质上,插补似乎删除了 snp ID 的 rs 数字,我只剩
我有一个以前可能被问过的问题,但我很难找到正确的描述。我希望有人能帮助我。 在下面的代码中,我设置了varprice,我想添加javascript变量accu_id以通过rails在我的数据库中查找记
我有一个简单的 SVG 文件,在 Firefox 中可以正常查看 - 它的一些包装文本使用 foreignObject 包含一些 HTML - 文本包装在 div 中:
所以我正在为学校编写一个 Ruby 程序,如果某个值是 1 或 3,则将 bool 值更改为 true,如果是 0 或 2,则更改为 false。由于我有 Java 背景,所以我认为这段代码应该有效:
我做了什么: 我在这些账户之间创建了 VPC 对等连接 互联网网关也连接到每个 VPC 还配置了路由表(以允许来自双方的流量) 情况1: 当这两个 VPC 在同一个账户中时,我成功测试了从另一个 La
我有一个名为 contacts 的表: user_id contact_id 10294 10295 10294 10293 10293 10294 102
我正在使用 Magento 中的新模板。为避免重复代码,我想为每个产品预览使用相同的子模板。 特别是我做了这样一个展示: $products = Mage::getModel('catalog/pro
“for”是否总是检查协议(protocol)中定义的每个函数中第一个参数的类型? 编辑(改写): 当协议(protocol)方法只有一个参数时,根据该单个参数的类型(直接或任意)找到实现。当协议(p
我想从我的 PHP 代码中调用 JavaScript 函数。我通过使用以下方法实现了这一点: echo ' drawChart($id); '; 这工作正常,但我想从我的 PHP 代码中获取数据,我使
这个问题已经有答案了: Event binding on dynamically created elements? (23 个回答) 已关闭 5 年前。 我有一个动态表单,我想在其中附加一些其他 h
我正在尝试找到一种解决方案,以在 componentDidMount 中的映射项上使用 setState。 我正在使用 GraphQL连同 Gatsby返回许多 data 项目,但要求在特定的 pat
我在 ScrollView 中有一个 View 。只要用户按住该 View ,我想每 80 毫秒调用一次方法。这是我已经实现的: final Runnable vibrate = new Runnab
我用 jni 开发了一个 android 应用程序。我在 GetStringUTFChars 的 dvmDecodeIndirectRef 中得到了一个 dvmabort。我只中止了一次。 为什么会这
当我到达我的 Activity 时,我调用 FragmentPagerAdapter 来处理我的不同选项卡。在我的一个选项卡中,我想显示一个 RecyclerView,但他从未出现过,有了断点,我看到
当我按下 Activity 中的按钮时,会弹出一个 DialogFragment。在对话框 fragment 中,有一个看起来像普通 ListView 的 RecyclerView。 我想要的行为是当
我是一名优秀的程序员,十分优秀!