Добрый день, в цикле создаю две кнопки в конструкторе модального окна
Проблема в том что обработчик callback второй кнопки применяется одновременно к обеим кнопкам!
бьюсь головой о стену.......
собственно вызов
CODE ( javascript):
скопировать код в буфер обмена
modal_generate( 'modal_incoming_call', 'Входящий звонок', 'Вам поступил звонок от пользователю №'+data.senderID, [{class :'btn btn-primary', name: 'Ответить', callback : function(m){ alert('ssss'); call_api.answer_an_incoming_call(data); m.modal('hide'); } }, {class :'btn', name: 'Отказать', callback : function(m){ m.modal('hide'); alert('mmmmmm'); } } ] );
реализация функции в которой калбеки которые каждый прописал для своей кнопки, последний применяется к обеим.
CODE ( javascript):
скопировать код в буфер обмена
function modal_generate(id, header, body, buttons) { var modal, doc_body = $('body'); if ($('#'+id).length === 0){ modal = $('<div></div>') .addClass('modal') .attr({ id: id, tabindex: "-1", role: "dialog", 'aria-labelledby': "myModalLabel", 'aria-hidden': "true" }); }else{ modal = $('#'+id); modal.empty(); } var header = $('<div class="modal-header">\ <h3 id="myModalLabel">' + header + '</h3>\ </div>'); var body = $('<div class="modal-body">' + body + '</div>'); var footer = $('<div class="modal-footer"></div>'); console.log(buttons); for (var i=0; i<buttons.length; i++) { var bo = buttons[i]; $('<button/>').addClass(bo.class) .html(bo.name) .on('click', function(){bo.callback(modal, $(this));}) .appendTo(footer); } modal.append(header, body, footer) .appendTo(doc_body) .modal('show'); return modal; }
|