【问题标题】:Twitter Bootstrap modal Issue 531Twitter Bootstrap 模态问题 531
【发布时间】:2012-08-13 02:17:41
【问题描述】:

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 的值,或者这是修复的错误?

【问题讨论】:

    标签: jquery twitter-bootstrap custom-data-attribute


    【解决方案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 值。

    【讨论】:

    • 那么,直接操作 Modal.options.user_id 的数据值的语法是什么?
    • $('#modal2').data('modal').options.user_id = "some_value"
    • 谢谢,没有什么比这更简单的了 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-22
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多