【问题标题】:Opening a UIKit modal through JavaScript通过 JavaScript 打开 UIKit modal
【发布时间】:2019-07-12 10:19:20
【问题描述】:

我正在使用 UIKit 框架,它们的模式如下所示:

<div id="modal-id" uk-modal>
    <div class="uk-modal-dialog">
        <button class="uk-modal-close-default" type="button" uk-close></button>
        <div class="uk-modal-header">
            <h2 class="uk-modal-title">Modal Title</h2>
        </div>
        <div class="uk-modal-body">
            <p>Lorem ipsum dolor sit amet</p>
        </div>
        <div class="uk-modal-footer uk-text-right">

            <button class="uk-button uk-button-primary" type="button">Ok</button>
        </div>
    </div>
</div>

用按钮正常打开:

<a id='open-modal' uk-toggle="target: #modal-id" href="#">Open</a>

我想将此链接到按键,所以当按下 H 时,它会切换模式:

document.body.onkeyup = function(e){
    if(e.keyCode === 72){
        console.log('H key pressed');
         // Toggle Modal
    }
}

我在模式按钮 id 上使用 .trigger('click') 与 Bootstrap 一起工作,但它不适用于 UIKIT

【问题讨论】:

    标签: javascript modal-dialog getuikit


    【解决方案1】:

    function addPage() { UIkit.modal($('#page-modal')).show();}
    <!-- UIkit CSS -->
        <link rel="stylesheet" 
            href="https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.3/css/uikit.min.css" />
    <script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
        <!-- UIkit JS -->
        <script src="https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.3/js/uikit.min.js"> 
       </script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.3/js/uikit- 
        icons.min.js"></script>
    
        <div id="page-modal" uk-modal>
            <div class="uk-modal-dialog">
                <button class="uk-modal-close-default" type="button" uk-close></button>
                <div class="uk-modal-header">
                    <h2 class="uk-modal-title">Modal Title</h2>
                </div>
                <div class="uk-modal-body">
                    <p>Lorem ipsum dolor sit amet</p>
                </div>
                <div class="uk-modal-footer uk-text-right">
    
                    <button class="uk-button uk-button-primary" type="button">Ok</button>
                </div>
            </div>
        </div>
    
        <a href="javascript:void(0)" id="create-new-page" onclick="addPage()" class="uk-button uk-button-primary">Open</a>

    【讨论】:

      【解决方案2】:

      所以基本上你需要用 Javascript 触发模式。这在documentation中有所描述

      document.body.onkeyup = function(e){
          if(e.keyCode === 72){
              console.log('H key pressed');
              // Toggle Modal
              UIkit.modal('#modal-id').toggle(); //you can use toggle or open here
          }
      }
      <!-- UIkit CSS -->
      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.3/css/uikit.min.css" />
      
      <!-- UIkit JS -->
      <script src="https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.3/js/uikit.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.3/js/uikit-icons.min.js"></script>
      
      <div id="modal-id" uk-modal>
          <div class="uk-modal-dialog">
              <button class="uk-modal-close-default" type="button" uk-close></button>
              <div class="uk-modal-header">
                  <h2 class="uk-modal-title">Modal Title</h2>
              </div>
              <div class="uk-modal-body">
                  <p>Lorem ipsum dolor sit amet</p>
              </div>
              <div class="uk-modal-footer uk-text-right">
      
                  <button class="uk-button uk-button-primary" type="button">Ok</button>
              </div>
          </div>
      </div>
      
      <a id='open-modal' uk-toggle="target: #modal-id" href="#" class="uk-button uk-button-primary">Open</a>

      【讨论】:

        猜你喜欢
        • 2018-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多