2015-08-12 4 views
2

Я использую событие bootstrap, которое должно запускаться после отображения модального диалога. Все работает как очарование Chrome, но в Firefox событие никогда не запускается. Моя версия Firefox - 38.05. Это мой код:Bootstrap show.bs.modal событие, не работающее над Firefox

$(document).on('show.bs.modal', function() { 
     $(elementEvents).each(function(i, event) { 
      console.log("binding event index " + i +" for type " + event.type); 
      currentElement.bind(event.type,event); 
     }); 
    }); 

Если изменить эту строку

$(document).on('show.bs.modal', function() { 

К этому один работает

$("*").on('show.bs.modal', function() { 

Любая идея, почему Firefox не интерпретирует документ?

+0

Может быть полезно http://stackoverflow.com/questions/16958487/jquery-bind-not-working-in-firefox – smarber

+0

вы не предназначены, чтобы связать это с фактическим модальным, а не документом? – Pete

ответ

1

Вы должны привязать event к настоящему модулю.

$('#exampleModal').on('show.bs.modal', function (event) { 
    var button = $(event.relatedTarget) // Button that triggered the modal 
    var recipient = button.data('whatever') // Extract info from data-* attributes 
    // If necessary, you could initiate an AJAX request here (and then do the updating in a callback). 
    // Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead. 
    var modal = $(this) 
    modal.find('.modal-title').text('New message to ' + recipient) 
    modal.find('.modal-body input').val(recipient) 
}); 

и это рабочий example.

Или вы можете привязать его к классу:

$('.modal').on('show.bs.modal', function (event) { 
    alert('here I am!'); 
    console.log(event); 
}); 

$('.modal').on('hidden.bs.modal', function (event) { 
    alert('bye bye!'); 
    console.log(event); 
}); 

Как показано в этом jsFiddle.

+0

Это общий js для всех модальных диалогов, поэтому не возможно. Если, конечно, я не использую модальный класс, вы дали мне идею, спасибо! – paul

+0

nope, с модальным он не работает ни $ (". Modal"). On ('hidden.bs.modal', function() – paul

+0

В вашем коде должно быть что-то еще, потому что оно работает [http: //jsfiddle.net/vandalo/npL2orgh/) – LeftyX

0

У меня была эта проблема ... Я переместил код внутри jQuery (document) .ready(), и теперь он работает для меня.

jQuery(document).ready(function() { 
    jQuery('.modal').on('hidden.bs.modal', function (e) { 
     // whatever you want to do 
    }); 
}); 
Смежные вопросы