Pregunta sobre twitter-bootstrap, modal-dialog, javascript – Modalidad de arranque de Twitter: cómo pasar datos a la función de devolución de llamada

0

¿hay una manera de pasar datos adicionales a la devolución de llamada de la función modal de arranque?

por ejemplo, digamos que mi enlace que hace que se abra el modal tiene un atributo adicional con un poco de datos útiles, ¿cómo podría hacer referencia a ese atributo?

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.
});

Tu respuesta

3   la respuesta
1

Me gusta esto -

<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');
});
sí, es cierto. pero siento que es una especie de pirateo: el uso de la devolución de llamada en el programa me permite en realidad secuenciar los eventos dentro de la función, en lugar de crear una condición de carrera contra el evento de clic separado. Kristian
3

¿Podría esto funcionar para ti?

<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');
});
1

pero esta es la primera cosa que he encontrado en Google. Entonces, quiero poner algo de información importante aquí ...

NECESITA poner su función de devolución de llamada enlazada en eventos ANTES de llamar al modal, por ejemplo:

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

Esto es muy importante y me ayudó mucho, así que aquí está ...

Preguntas relacionadas