未定义Jquery事件 - 获取被点击元素的属性

时间:2014-08-10 02:57:35

标签: jquery twitter-bootstrap attributes

我有一个“默认模板”,我在body上加载了一些视图(带有codeigniter)

在其中一个视图中,我有一个像这样的td表:

<td data-target="#VRModal" data-id="2" data-toggle="modal"><a href="#">Details</a></td>

在这个视图的底部我有一个bootstrap模态

<div id="VRModal" class="modal fade" role="dialog" aria-labelledby="orderModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
    <div class="modal-content">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;<span class="sr-only">Close</button>
            <h4 class="modal-title" id="myModalLabel">Details</h4>
        </div>

        <div id="orderDetails" class="modal-body"></div>
        <div class="modal-footer">
            <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
        </div>
    </div>
</div>

的javascript:

                $('#VRModal').modal({
                keyboard: true,
                backdrop: "static",
                show:false

            }).on('show.bs.modal', function(){
                var id = $(event.target).closest('td').data('data-id');
                var url = '<?= site_url() ?>/' + '<?= $this->uri->uri_string() ?>/'+id;
                $.ajax({                        url: url,
                    dataType: 'html',
                    success: function(html)
                    {
                        $('#orderDetails').html(html)
                    }
                });
            });
        });

除了'var id'

之外,它全部正常工作

在控制台上出现此错误:

ReferenceError: event is not defined

我对jquery不太了解,只是在互联网上获取此代码。

2 个答案:

答案 0 :(得分:2)

使用此:

var id = $(event.target).closest('td').attr('data-id');


更新 看来你的代码也有一些语法错误。 试试这个完整代码:

$('#VRModal').modal({
    keyboard: true,
    backdrop: "static",
    show:false
});

$('#VRModal').on('show.bs.modal', function(e){
    var id = $(e.relatedTarget).closest('td').attr('data-id');
    alert(id);
    var url = '<?= site_url() ?>/' + '<?= $this->uri->uri_string() ?>/'+id;
    $.ajax({
        url: url,
        dataType: 'html',
        success: function(html)
        {
            $('#orderDetails').html(html)
        }
    });
});

<强> Check JSFiddle

答案 1 :(得分:2)

$('#VRModal').on('show.bs.modal', function(event){
    var id = $(event.relatedTarget).attr('data-id');
    // other code
})

这是小提琴http://jsfiddle.net/c7hsth35/