2015-05-25 82 views
-1

例子:http://jsfiddle.net/atfb8huL/Summernote未初始化的甚至Ajax請求自舉3模式

  • 當你第一次點擊 「打開Summernote」 鏈接。 Ajax已成功加載 並且summernote按預期進行了初始化。
  • 關閉模式框並單擊「打開Summernote」鏈接。什麼都沒發生。
  • 關閉模式框並單擊「打開Summernote」鏈接。 Summernote按預期進行初始化。
  • 關閉模式框並單擊「打開Summernote」鏈接。什麼都沒發生。

....它會繼續像這樣。

我不知道在加載內容之前,接收到的ajax內容是否會包含summernote編輯器。 因此,在ajax成功函數中初始化summernote不是一個選項。

身體:

<body> 
    <a href="modal.html" class="ajaxPopup">Open Summernote</a> 
    <div class="modal fade" id="myModal" 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">X</button> 
        <h4 class="modal-title">Modal title</h4> 

       </div> 
       <div class="modal-body"> 
        <div class="te"></div> 
       </div> 
      </div> 
     </div> 
    </div> 
<script type='text/javascript'> 
var $myModal = null; 
$(document).ready(function() { 
    $myModal = $('#myModal'); 
    $('.ajaxPopup').on('click', function() { 
     $.ajax({ 
      url: 'modal.html', 
      type: 'GET', 
      context: this, 
      success: function (response) { 
       $myModal.find('.modal-title').html("Summernote"); 
       $myModal.find('.modal-body').html(response); 
       $myModal.modal({ 
        show: true, 
        backdrop: true 
       }); 
      } 
     }); 
     return false; 
    }); 
}); 
</script> 
</body> 

modal.html內容

<div id='commentBox'></div> 
<script type='text/javascript'> 
    $(function() { 
     $('#commentBox').summernote(); 
    }); 
</script> 

有什麼建議?

回答

1

在打開它之前清空模態正文內容可修復此問題。

http://jsfiddle.net/gze70ov2/

var $myModal = null; 
$(document).ready(function() { 
    $myModal = $('#myModal'); 
    $('.ajaxPopup').on('click', function() { 
     $myModal.find('.modal-body').html(''); 
     $.ajax({ 
      url: '/echo/html/', 
      data: { 
       html: "<div id='commentBox'></div>" + "<script type='text/javascript'>$(function() {$('#commentBox').summernote();});<\/script>" 
      }, 
      type: 'POST', 
      context: this, 
      success: function (response) { 
       $myModal.find('.modal-title').html("Summernote"); 
       $myModal.find('.modal-body').html(response); 
       $myModal.modal({ 
        show: true, 
        backdrop: true 
       }); 
      } 
     }); 
     return false; 
    }); 

});

+0

我說這不是一個選項:(--->我不知道在加載內容之前接收到的ajax內容是否包含summernote編輯器,所以在ajax成功函數中初始化summernote不是一個選項。 –

+0

@GöktuğÖztürk道歉 –

+0

我嘗試過'$ myModal.find('。modal-body')。html('')。html(response);'before。但它也沒有工作,這一個解決了我的問題,謝謝。 –