[javascript] 페이지로드시 부트 스트랩 모달 시작

나는 자바 스크립트를 전혀 모른다. 부트 스트랩 문서에 따르면

javascript를 통해 모달을 호출하십시오. $ ( ‘# myModal’). modal (options)

페이지로드에서 이것을 호출하는 방법에 대한 단서가 없습니다. 부트 스트랩 페이지에서 제공된 코드를 사용하여 요소 클릭시 모달을 성공적으로 호출 할 수 있지만 페이지로드시 즉시로드하려고합니다.



답변

load문서 헤드 섹션의 jQuery 이벤트 내에서 페이지로드에서 호출하려는 모달을 래핑하면 다음 과 같이 팝업됩니다.

JS

<script type="text/javascript">
    $(window).on('load',function(){
        $('#myModal').modal('show');
    });
</script>

HTML

<div class="modal hide fade" id="myModal">
  <div class="modal-header">
    <a class="close" data-dismiss="modal">×</a>
    <h3>Modal header</h3>
  </div>
  <div class="modal-body">
    <p>One fine body…</p>
  </div>
  <div class="modal-footer">
    <a href="#" class="btn">Close</a>
    <a href="#" class="btn btn-primary">Save changes</a>
  </div>
</div>

다음과 같은 링크로 호출하여 페이지 내에서 모달을 호출 할 수 있습니다.

<a class="btn" data-toggle="modal" href="#myModal" >Launch Modal</a>


답변

javascript모달을 표시 할 필요가 없습니다

가장 간단한 방법은 “hide”를 “in”으로 바꾸는 것입니다.

class="modal fade hide"

그래서

class="modal fade in"

onclick = "$('.modal').hide()"버튼 닫기에 추가해야합니다 .

추신 : 가장 좋은 방법은 jQuery 스크립트를 추가하는 것입니다.

$('.modal').modal('show');


답변

다음을 추가하십시오.

class="modal show"

작업 예

<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>

<div class="container">
  <!-- Trigger the modal with a button -->
  <button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open Modal</button>

  <!-- Modal -->
  <div class="modal show" id="myModal" role="dialog">
    <div class="modal-dialog">

      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h4 class="modal-title">Modal Header</h4>
        </div>
        <div class="modal-body">
          <p>Some text in the modal.</p>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div>

    </div>
  </div>

</div>


답변

이 실행 가능한 코드를 사용해보십시오.

$(window).load(function()
{
    $('#myModal').modal('show');
});
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>

<div class="container">
  <!-- Trigger the modal with a button -->
  <button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open Modal</button>

  <!-- Modal -->
  <div class="modal fade" id="myModal" role="dialog">
    <div class="modal-dialog">

      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h4 class="modal-title">Modal Header</h4>
        </div>
        <div class="modal-body">
          <p>Some text in the modal.</p>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div>

    </div>
  </div>

</div>

자세한 내용은 여기를 참조하십시오 .

당신의 완전한 답이 있다고 생각하십시오.


답변

Andre의 Ilich가 jquery라고 부르는 줄에 js 스크립트를 추가해야한다고 말한 것에 대해 :

<script src="content/bootstrapJS/jquery-2.1.1.min.js" type="text/javascript"></script>

<script type="text/javascript">
     $(window).load(function(){
         $('#myModal').modal('show');
      });
</script>

내 경우에는 그것이 도움이되는 희망이었습니다.


답변

필자의 경우 jQuery를 추가하여 모달을 표시하지 못했습니다.

$(document).ready(function() {
    $('#myModal').modal('show');
});

모달의 속성이 aria-hidden = “true”였기 때문인 것 같습니다.

<div class="modal fade" aria-hidden="true" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">

위의 jQuery뿐만 아니라 해당 속성을 제거해야했습니다.

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">

모달 클래스를에서 (으) modal fade로 변경하려고 시도했지만 modal fade in작동하지 않습니다. 또한로부터 클래스를 변경 modal fade하려면 modal show폐쇄 될 수있는에서 모달 멈췄다.


답변

여기에 [자바 스크립트 초기화가없는 솔루션!]

javascript로 모달을 초기화 하지 않고 예제 찾을 수 없으므로 페이지로드시 javascript 지연$('#myModal').modal('show') 없이 구현할 수있는 방법에 대한 제안이 있습니다 .

  1. 클래스와 스타일로 모달 컨테이너 div를 편집하십시오.

<div class="modal in" id="MyModal" tabindex="-1" role="dialog" style="display: block; padding-right: 17px;">

  1. 클래스와 스타일로 몸을 편집하십시오.

    <body class="modal-open" style="padding-right:17px;">

  2. 모달 배경 div 추가

    <div class="modal-backdrop in"></div>

  3. 스크립트 추가

    $(document).ready(function() {
        $('body').css('padding-right', '0px');
        $('body').removeClass('modal-open');
        $('.modal-backdrop').remove();
    
        $('#MyModal').modal('show'); });

    일어날 일은 모달의 html이 자바 스크립트없이 페이지로드에로드 될 것입니다 (지연 없음). 이 시점에서 모달을 닫을 수 없으므로 모든 것이로드 될 때 모달을 올바르게로드하기 위해 document.ready 스크립트가 있습니다. 실제로 사용자 지정 코드를 제거한 다음 .modal ( ‘show’)를 사용하여 모달 (다시)을 초기화합니다.