从HTML外部打开模态

时间:2016-11-01 02:19:30

标签: javascript jquery html modal-dialog

我正在按照教程创建一个简单的模态,但是说明解释了如何从调用它的HTML中的按钮打开它。

<html>
<head>
</style>
  <!-- Don't forget to include jQuery ;) -->
  <script src="jquery.modal.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>

  <!-- Modal HTML embedded directly into document -->
  <div id="ex1" style="display:none;">
    <p>Thanks for clicking.  That felt good.  <a href="#" rel="modal:close">Close</a> or press ESC</p>
  </div>

  <!-- I WANT TO ACTIVATE THIS ACTION FROM A JAVASCRIPT FILE -->
  <p><a href="#ex1" rel="modal:open">Open Modal</a></p>

</body>
</html>

如果我想从链接的js文件中打开它,我该怎么办?

1 个答案:

答案 0 :(得分:2)

通用解决方案

为简单起见,请为该事件指定一个ID:

<a id="testID" href="#ex1" rel="modal:open">Open Modal</a>

然后只需触发该元素的点击即可。

JQuery:

$("#testID").click();

JQuery-Modal特定解决方案

只需调用此方法打开模态:

$("#testID").modal();

要以编程方式关闭,请分配ID&#34; testClose&#34;到模态中的某个元素,并运行它来关闭模态:

$("#testClose").modal({closeExisting: true});

更细微差别控制的可能改善

我注意到jquery-modal使用自定义事件,例如&#34; modal:open&#34;,所以理论上你也可以这样称呼:

$("#testID").trigger("modal:before-block");
$("#testID").trigger("modal:block");
$("#testID").trigger("modal:before-open");
$("#testID").trigger("modal:open");

但是,这个对我不起作用。只需使用.click()