我的editRecords.php页面上有以下代码。这个页面是一个记录表,当我点击视图链接时,它打开一个对话框,其中包含displayRecord.php页面。问题是如果我打开表中的最后一条记录而不是打开/关闭对话框并且editRecords.php页保持不变,它似乎重新加载,这会将我带回到页面顶部。
$(document).ready(function() {
//creating a dialog box
var dlg=$('#ticketDetails').dialog({
title: 'Ticket Details',
resizable: false,
autoOpen:false,
modal: true,
hide: 'fade',
width: 1300
});
//loading dialog box with record
$('a.view').click(
function(e)
{
dlg.load('displayRecord.php?id='+this.id, function(){
dlg.dialog('open');
});
});
});
我尝试过使用e.preventDefault()
,但这会导致对话框加载焦点而不是顶部。
function(e)
{
//tested here e.preventDefault();
dlg.load('displayRecord.php?id='+this.id, function(){
dlg.dialog('open');
});
//tested here e.preventDefault();
如何修复/调整此行为?
感谢。
澄清:
e.preventDefault()
有效,但问题是它导致对话框加载焦点在中间。打开或关闭对话框没问题。我只是想停止重新加载基页(editRecords.php)(或看起来像页面重新加载),这样当我关闭对话框时,我看到我点击的记录而不必再次向下滚动。
答案 0 :(得分:0)
让我们看看如何在此对话框中动态加载内容
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Load Page Dynamically inside a jQuery UI Dialog</title>
<link rel="Stylesheet" type="text/css" href="
http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css
" />
<script type="text/javascript" src="
http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js">
</script>
<script type="text/javascript" src="
http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js">
</script>
<script type="text/javascript">
$(function () {
$('<div>').dialog({
modal: true,
open: function ()
{
$(this).load('Sample.htm');
},
height: 400,
width: 400,
title: 'Dynamically Loaded Page'
});
});
</script>
</head>
<body>
</body>
</html>
正如您所看到的,我们正在动态创建一个div元素并指定open事件的回调,它会动态加载页面'Sample.htm'的内容。
多次打开和关闭对话框不会从页面中删除对话框。如果要实现close事件,请在对话框选项(未经测试的代码)中使用此代码:
close: function(e, i) { $(this).close(); }
这就是全部!