Вопрос по javascript, modal-dialog, twitter-bootstrap – Twitter начальной загрузки - как передать данные в функцию обратного вызова

0

Есть ли способ передать дополнительные данные для обратного вызова модальной функции начальной загрузки?

например, допустим, что моя ссылка, вызывающая открытие модального режима, содержит дополнительный атрибут с небольшим количеством полезных данных, как я могу ссылаться на этот атрибут?

HTML

<span listid="80" href="#editTaskList" data-toggle="modal" class="btn btn-mini right"><i class="icon-edit"></i> Edit Task List</span>

JS

$('#editTaskList').on('show', function () {
    // get the source of the click, and then get the data i need.
});

Ваш Ответ

3   ответа
1

<span id="modal_opener" data-extrastuff="stuff" listid="80" href="#editTaskList" data-toggle="modal" class="btn btn-mini right"><i class="icon-edit"></i> Edit Task List</span>

$('#modal_opener').click(function() {
    var stuff_i_want = $(this).attr('data-extrastuff');
});
Да, это правда. но я чувствую, что это своего рода хак - использование обратного вызова on show позволяет мне фактически упорядочивать события внутри функции, а не создавать условия состязания с отдельным событием щелчка. Kristian
1

что это старый вопрос, но это первое, что я нашел в Google. Итак, я хочу разместить здесь важную информацию ...

Вы ДОЛЖНЫ поместить функцию обратного вызова в привязку к событиям ДО того, как вызовете модальный режим, например:

$('#modal').on('shown', function(){ 
     // Do something when the modal is loaded
});
$("#modal").modal();

Это очень важно и мне очень помогло, так что вот оно ...

3

<span listid="80" href="#editTaskList" data-toggle="datamodal" class="btn btn-mini right"><i class="icon-edit"></i> Edit Task List</span>
var $editTaskList = $('#editTaskList');

$('body').on('click.modal.data-api', '[data-toggle="datamodal"]', function (e) {
    var $this = $(this);
    $editTaskList.data('anyAttr',$this.data('anyAttr'));
    $editTaskList.modal('show');
    e.preventDefault();
})

$editTaskList.on('show', function () {
    var myData = $editTaskList.data('anyAttr');
});

Похожие вопросы