通过单击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)。我到底做错了什么?
谢谢,
答案 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;
}