2014-10-01 2 views
0

simpleModal 확인 예에 문제가 있습니다. 기본 확인 대화 상자에서 결과를 기다린 후 누른 버튼에 따라 조치를 취합니다. 나는 다른 js에서 전화를한다.simplemodal 반환 값을 기다리는 예제를 확인하십시오.

var res = confirm("Delete elements?"); 

if (res == true) { 
     mainController.deleteNode(nodeMoveMessage, url); 
    } 

하고 대화 상자를 만드는 JS는 다음과 같습니다 : 내 JS 코드는

function confirm(message, callback) { 
var modalWindow = document.getElementById("confirm"); 
console.log(modalWindow); 
$(modalWindow).modal({ 
    closeHTML: "<a href='#' title='Close' class='modal-close'>x</a>", 
    position: ["20%",], 
    overlayId: 'confirm-overlay', 
    containerId: 'confirm-container', 
    onShow: function (dialog) { 
     var modal = this; 

     $('.message', dialog.data[0]).append(message); 

     // if the user clicks "yes" 
     $('.yes', dialog.data[0]).click(function() { 
      // close the dialog 
      modal.close(); // or $.modal.close(); 
      // call the callback 
      return true; 
     }); 
    } 
}); 
} 

내 JSP의 사업부는 다음과 같습니다

<div id='confirm'> 
     <div class='header'><span>Confirm</span></div> 
     <div class='message'></div> 
     <div class='buttons'> 
      <div class='no simplemodal-close'>No</div><div class='yes'>Yes</div> 
     </div> 
    </div> 

고마워요!

답변

0

당신은 당신의 모달에 콜백을 추가, 그래서 confirm 기능에 먼저 추가 가지고 다음 버튼을 때

function confirm(message, callback) { 
    var modalWindow = document.getElementById("confirm"); 
    console.log(modalWindow); 
    $(modalWindow).modal({ 
     closeHTML: "<a href='#' title='Close' class='modal-close'>x</a>", 
     position: ["20%",], 
     overlayId: 'confirm-overlay', 
     containerId: 'confirm-container', 
     onShow: function (dialog) { 
      var modal = this; 

      $('.message', dialog.data[0]).append(message); 

      $('.yes', dialog.data[0]).click(function() { 
       modal.close(); $.modal.close(); 
       callback(); // HERE IS THE CALLBACK 
       return true; 
      }); 
     } 
    }); 
} 

그런 다음 당신이 실행하는 콜백와 confirm 함수를 호출 할 수 있습니다

사용자가 클릭
function doSomething() { 
    mainController.deleteNode(nodeMoveMessage, url); 
} 

confirm("Delete elements?", doSomething); 

이제 때 doSomething 함수가 호출 될 것이다 버튼 요소입니다 b : 다음과 같이 클릭 전자가 삭제되었습니다.

관련 문제