2016-07-09 18 views
0

매번 새로운 내용을 열거 나 닫을 때 부트 스트랩 모달을 제거하고 싶습니다 .net에서 구현하려고합니다. 이것을 중복으로 표시하기 전에 읽어보십시오. 내 마스터 페이지에서부트 스트랩 모달 파괴

,

<div id="modal" class="modal fade"> 
     <div class="modal-dialog" role="dialog"> 
      <div class="modal-content" data-backdrop="static"> 
       <div id="modalContent"> 
       </div> 
      </div> 
     </div> 
    </div> 

같은 모달 대한 마크 업 내 aspx 페이지에서

$("a[data-modal]").on("click", function (ev) { 
       BlockPage("Loading Dialog"); 
       $("#modalContent").load(this.href, function() { 
        $("#modal").modal({ 
         cache:false, 
         backdrop: 'static', 
         keyboard: false 
        }, "show"); 
       }); 
       ev.preventDefault(); 
       return false; 
      });   

로 모달을 열 수있는 코드는, 내가 코드를 다음과 같이 모달 엽니 다했다.

<a runat="server" id="lnkAssignInformed" data-modal="" class="btn btn-info hidden-print assignInformed">Assign Informed</a>&nbsp; 

표시되고 숨겨진 이벤트에 대해 다음 코드가 있습니다. 숨겨진 사건 inorder에 대한 모달을 파괴하기 위해 나는이 게시물의 답에서 답을 따랐다. Stackoverflow Post

$("#modal").on('show.bs.modal', function (e) { 
       $(this).find('.modal-body').css({ 
        width: 'auto', 
        height: 'auto', 
        'max-height':'100%' 
       });    
      }); 

      $('body').on('hidden.bs.modal', '#modal', function() {         
       $('#modal').removeData('bs.modal'); 
      }); 

문제는 심지어 내가 다시 열 때 숨겨진 이벤트에 모달을 파괴하는 나는 여전히 처음 열 때 나타났다 모달의 데이터를 볼 수 모달 시도 후.

다음 코드도 시도했지만 차이는 없습니다.

$("#modal").on('hide.bs.modal', function() { 
       $('#modal').data('bs.modal', null); 
      }); 

현재 IE-11에서 이것을 시도하고 있습니다. 다른 브라우저에서는 테스트하지 않았습니다.

앵커 태그를 클릭 할 때마다로드가 발생할 수있는 방법이 있습니까? 어떤 도움을 주시면 감사하겠습니다.

답변

0

나는 그것을 스스로 해결할 수있었습니다. 문제는 결과를 캐싱하는 Jquery.load()에서 발생했습니다. 나는 다음 코드를 사용하여 캐시를 파괴 할 수 있었다. 이 후에 대화 상자에 매번 새로운 내용이 표시됩니다.

$("a[data-modal]").on("click", function (ev) { 
      BlockPage("Loading Dialog"); 
      $("#modalContent").load(this.href,'f' + (Math.random()*1000000), function() { 
       $("#modal").modal({ 
        cache:false, 
        backdrop: 'static', 
        keyboard: false 
       }, "show"); 
      }); 
      ev.preventDefault(); 
      return false; 
     });