2016-03-31 23 views
0

Bazı kodları iletişim kurarak kaydetmeye çalışıyorum, böylece içeriği iletebilirim ve kod geri kalanı kaldıracaktır. Birkaç diyaloğa ihtiyacım olan bir şey inşa ediyorum, bu düşünmek mantıklı bir yaklaşım. Sorun şu ki, diyalogun düğmesindeki OK düğmesine bastığınızda geri arama fonksiyonunu çalıştırmam gerekiyor. Tıklama olayından bu yana bir yerde olduğumu düşünüyorum ve bu nedenle geri arama hiç ateş etmiyor.OKCallback/click olayı önyükleme iletişim kutusunda açılmıyor

https://jsfiddle.net/qcvjndh6/

Kodu: kök neden oldu ama asıl elemana geri arama bağlı olduğunda, işe yaradı neyi

function Utils() { 

} 

Utils.prototype = { 
    constructor: Utils, 
    showDialog: function (title, html, okCallback) { 
     var modal = $('<div />', { 'class': 'modal fade', 'role': 'dialog', id: 'mymodal' }); 
     var modalDlg = $('<div />', { 'class': 'modal-dialog' }); 
     var modalContent = $('<div />', { 'class': 'modal-content' }); 

     modalContent.append($('<div />', { 'class': 'modal-header', 'text': title }) 
         .append($('<button />', { 'type': 'button', 'class': 'close', 'data-dismiss': 'modal', 'aria-label': 'Close' }) 
          .append($('<span />', { 'aria-hidden': 'true' }).html('&times;')))); 
     modalContent.append($('<div />', { 'class': 'modal-body' }) 
         .append(html)); 
     modalContent.append($('<div />', { 'class': 'modal-footer' }) 
         .append($('<button />', { 'class': 'btn btn-primary', 'data-dismiss': 'modal', 'type': 'button', 'text': 'OK', id: 'btnOKCLOSE' }))); 
     modal.append(modalDlg) 
     modalDlg.append(modalContent); 

     //$('#btnOKCLOSE').click(function() { alert('test'); }.bind(this)); Doesn't Work 
       //$('#btnOKCLOSE').click(function() { alert('test'); }); Doesn't Work 
     $('#btnOKCLOSE').click(okCallback.bind(this)); //doesn't work. 


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

} 

var Utils = new Utils(); 

Utils.showDialog("Title", $('<p/>', {'text': 'test'}), function (e) { alert('test');}); 

cevap

0

emin değil:

okCallback = typeof okCallback != 'undefined' ? okCallback : function() { }; 
    var modal = $('<div />', { 'class': 'modal fade', 'role': 'dialog', id: 'mymodal' }); 
    var modalDlg = $('<div />', { 'class': 'modal-dialog' }); 
    var modalContent = $('<div />', { 'class': 'modal-content' }); 

    modalContent.append($('<div />', { 'class': 'modal-header', 'text': title }) 
        .append($('<button />', { 'type': 'button', 'class': 'close', 'data-dismiss': 'modal', 'aria-label': 'Close' }) 
         .append($('<span />', { 'aria-hidden': 'true' }).html('&times;')))); 
    modalContent.append($('<div />', { 'class': 'modal-body' }) 
        .append(html)); 
    modalContent.append($('<div />', { 'class': 'modal-footer' }) 
        .append($('<button />', { 'class': 'btn btn-primary', 'data-dismiss': 'modal', 'type': 'button', 'text': 'OK', id: 'btnOKCLOSE' }).click(okCallback.bind(this)))); 
    modal.append(modalDlg) 
    modalDlg.append(modalContent); 

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

    $(modal).on('hidden.bs.modal', function() { 
     $(modal).off('click'); 
     $(modal).remove(); 
    }); 
İlgili konular