jQuery DataTable行中的模式窗口弹出菜单



通过单击DataTable单元格内的超链接,我很难让jQuery Modal Window正常工作。这是数据表和模式窗口位:

<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模态弹出菜单的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)。我到底做错了什么?

谢谢,

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

$('#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;
}

最新更新