使用 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">&times;  </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 显示引导模式的主要内容,如果未能解决你的问题,请参考以下文章

javascript onclick,匿名函数

将 CSS :active 转换为 Javascript .onclick

Backbone:删除省略号onclick

如何使用 iOS WKWebView 注入 JavaScript 回调来检测 onclick 事件?

处理引导弹出窗口 html 内容内的按钮单击

锚标记href和onclick