1

https://github.com/twitter/bootstrap/issues/531

我正在使用带有问题 531 中描述的修复程序的 Twitter Boostrap,以允许使用数据属性将数据传递给模态,这可以正常工作,但是......

$('#modal2').data('modal').options.user_id 

似乎不同于:

$('#modal2').data('user_id')

我正在传递一个 user_id:

<a data-toggle="modal" data-user_id="5" href="#modal2">Edit Picture</a>

$('#modal2').on('show', function (event) {
    $('#modal2').data('user_id', $('#modal2').data('modal').options.user_id );
}); 

但我也试图将相同的数据属性从一种模式传递到另一种模式:

#modal1 里面:

$('#modal1').modal('hide');
$('#modal2').data('user_id', 6); // successfully sets the user_id to 6
$('#modal2').modal('show');

问题是当使用这种方法打开 modal2 时,它的值不正确(5 而不是 6),并且似乎忽略了 $('#modal2').data('user_id', 6); 设置的数据;

如何以编程方式设置 data('modal').options.user_id 的值,或者这是修复的错误?

4

1 回答 1

1

它们不一样。Bootstrap Modals 中用于传递数据的补丁仅将数据从原始锚点传输到Modal.options对象。所以,

<a data-toggle="modal" data-user_id="5" href="#modal2">Edit Picture</a>

给你:

$('#modal2').data('modal').options.user_id === 5 // true

但这不会向模态元素添加新的数据对象。

因此,在您的情况下,尝试将值分配给单独的数据对象 ( data('user_id')) 不会对该Modal.options.user_id值产生影响。

您要么需要操作原始锚点上的数据值,要么Modal.options.user_id直接操作该值。

于 2012-08-17T01:02:13.777 回答