通过单击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;
}