来自jQuery DataTable Row的模态窗口弹出窗口

时间:2013-12-02 23:46:09

标签: c# jquery-datatables

通过单击DataTable单元格内的超链接,我有一段时间让jQuery Modal Window工作。这是DataTable和模态窗口位:

<script type="text/javascript" language="javascript" src="DataTables-1.9.4/media/js/jquery.js"></script>
<script type="text/javascript" language="javascript" src="DataTables-1.9.4/media/js/jquery.dataTables.js"></script>
<script type="text/javascript" language="javascript" src="DataTables-1.9.4/media/js/jquery-ui.js"></script>

<script type="text/javascript">
    $(document).ready(function () {
        $('#example').dataTable({
            "bPaginate": true,
            "bLengthChange": true,
            "bFilter": true,
            "bSort": true,
            "bInfo": true,
            "bAutoWidth": true,
            "bJQueryUI": true,
            "sPaginationType": "full_numbers",
            "bProcessing": true,
            "sAjaxSource": './arrays2.txt',
            "aoColumnDefs": [{
                "aTargets": [0],
            "mRender": function (data, type, full) {
                return '<a href="Video2.aspx?videoId=' + data + '" class="videowindow">Watch</a>';
            }
        }]
    });
    $(".videowindow").click(function () {
        $("#thedialog").attr('src', $(this).attr("href"));
        $("#somediv").dialog({
            width: 900,
            height: 600,
            modal: true,
            close: function () {
                $("#thedialog").attr('src', "about:blank");
            }
        });
        return false;
    });
});
</script>

这是包含iframe Modal Popup的div:

<div id="somediv" title="Video Window" style="display: none;">
            <iframe id="thedialog" width="850" height="520"></iframe>
</div>

如果我直接调用链接,它可以正常工作:

<a href='video2.aspx?videoId=1' class='videowindow'>Modal Window Test Link</a>

但是,如果我单击DataTable中的上面的mRendered链接,将忽略模态窗口,我直接进入该页面(即,浏览器从我的页面转到Video2.aspx?videoId = x)。我到底做错了什么?

谢谢,

1 个答案:

答案 0 :(得分:0)

尝试将事件句柄从.click更改为.on并添加event.preventDefault();

$('#example').on('click', '.videowindow',function ( event ) {
   event.preventDefault(); 
   $("#thedialog").attr('src', $(this).attr("href"));
   $("#somediv").dialog({
        width: 900,
        height: 600,
        modal: true,
        close: function () {
            $("#thedialog").attr('src', "about:blank");
        }
    });
    return false;
}