使用 javascript onClick 显示引导模式
Posted
技术标签:
【中文标题】使用 javascript onClick 显示引导模式【英文标题】:Display Bootstrap Modal using javascript onClick 【发布时间】:2013-12-05 08:20:25 【问题描述】:我需要能够使用 onClick=""
或类似功能打开 Twitter 引导模式窗口。只需要代码进入onClick=""
。我正在尝试制作一个可点击的div
来打开模式。
代码摘录:
分区代码:
<div class="span4 proj-div" onClick="open('GSCCModal');">
模态分区代码:
<div id="GSCCModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
Javascript:
function open(x)
$(x).modal('show');
【问题讨论】:
使用 onClick 在很大程度上是不受欢迎的。是否有特定原因您不能至少在 您是否有不能使用内置引导功能的原因? (即:将 data-toggle="modal" 和 data-target="#foo" 放在您的 div 上?) 我正在使用 onClick 来避免在 div 周围使用链接。这些是代码摘录,而不是它们在代码中的实际情况。 @BriAnna,您的意思是非模态 div 代码?我没有意识到这会做任何事情,或者我什至可以做到。 是的。任何元素都可以是可点击的触发器。只需将这两个属性添加到您的 div 中。不需要 a 标签。但是你的标记不对。您必须遵循 Twitter Bootstrap 的示例。 【参考方案1】:您不需要点击。假设您使用的是 Bootstrap 3 Bootstrap 3 Documentation
<div class="span4 proj-div" data-toggle="modal" data-target="#GSCCModal">Clickable content, graphics, whatever</div>
<div id="GSCCModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">× </button>
<h4 class="modal-title" id="myModalLabel">Modal title</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">Save changes</button>
</div>
</div>
</div>
</div>
如果您使用的是 Bootstrap 2,则应遵循此处的标记: http://getbootstrap.com/2.3.2/javascript.html#modals
【讨论】:
那,先生正是我需要的。我目前正在使用 bootstrap 2.3.2,但它仍然可以完美运行!谢谢! 如果我必须在另一个按钮点击时打开模型怎么办? 我明白了。 How to open a Bootstrap modal window using jQuery?【参考方案2】:我正在寻找 onClick 选项来根据列表中的项目设置模式的标题和正文。 T145的回答帮了很大的忙,所以想分享一下我是怎么用的。
确保包含 JavaScript 函数的标签是 text/javascript 类型以避免冲突:
<script type="text/javascript"> function showMyModalSetTitle(myTitle, myBodyHtml)
/*
* '#myModayTitle' and '#myModalBody' refer to the 'id' of the HTML tags in
* the modal HTML code that hold the title and body respectively. These id's
* can be named anything, just make sure they are added as necessary.
*
*/
$('#myModalTitle').html(myTitle);
$('#myModalBody').html(myBodyHtml);
$('#myModal').modal('show');
</script>
现在可以在 onClick 方法中从按钮等元素内部调用此函数:
<button type="button" onClick="javascript:showMyModalSetTitle('Some Title', 'Some body txt')"> Click Me! </button>
【讨论】:
【参考方案3】:必须首先创建一个 JavaScript 函数来保存您想要完成的操作:
function print() console.log("Hello World!")
然后必须在元素内部的 onClick 方法中调用该函数:
<a onClick="print()"> ... </a>
您可以直接从此处的 Bootstrap 3 文档中了解有关模态交互的更多信息: http://getbootstrap.com/javascript/#modals
您的模态绑定也不正确。它应该是这样的,其中 "myModal" = 元素 ID:
$('#myModal').modal(options)
换句话说,如果您真的想保留已有的,请在 GSCCModal 前面加一个“#”,看看是否有效。
将 onClick 绑定到 div 元素也不是很明智;像按钮这样的东西会更合适。
希望这会有所帮助!
【讨论】:
不幸的是,这并没有解决问题..即使使用 twitter 引导功能,我得到的最远的是一个空白屏幕。我还将使用我目前正在使用的代码更新我的初始问题【参考方案4】:我也遇到了同样的问题,经过大量研究,我终于构建了一个js函数,可以根据我的要求动态创建模态。使用此功能,您可以在一行中创建弹出窗口,例如:
puyModal(title:'Test Title',heading:'Heading',message:'This is sample message.')
或者您可以使用其他复杂的功能,例如 iframe、视频弹出窗口等。
在https://github.com/aybhalala/puymodals 上找到它,如需演示,请转到http://pateladitya.com/puymodals/
【讨论】:
以上是关于使用 javascript onClick 显示引导模式的主要内容,如果未能解决你的问题,请参考以下文章
将 CSS :active 转换为 Javascript .onclick