1

在我的 index.php 页面上,我使用 jquery load() 在 div“bodycontent”中加载其他页面。这工作得很好,花花公子。我禁用常规链接,并且必须将 href 设置为页面名称,而不使用 php,并在 load() 发生时重新标记 php。我在 div 中加载的页面之一在链接上弹出对话框。

当您最初转到该页面时,这很好,但是如果您完全通过单击“产品”或页面上的任何其他链接来避开,然后返回“主页”并单击“阅读更多”链接,对话框将不再出现。您必须刷新,然后它才能工作,直到您再次单击链接。此外,这在我的 IE 9、ver9.0.8 中运行良好,但较旧的 IE 正在工作(如 8),并且至少有一个其他人 chrome 对话框根本不会出现。尽管我删除了临时 Internet 文件等,但我的工作中也有 IE9 无法正常工作。在我的电脑上,它在全新下载的 firefox、chrome 和 IE 上运行良好,所以我也想知道我的方法是否向后兼容和跨浏览器,如果不是我能做些什么来做到这一点。一世'

我也看过 ajaxcomplete 之类的东西,但我最初是有效的,我不确定该怎么做。

我的网站主索引页面最初加载 home.php(新闻等)

摆弄我的导航 javascript,这会使页面处于非活动/活动状态并在 div 中加载()/getscript

对话框.js:

$(document).ready(function() {
$('#dialogbox').dialog({
    autoOpen: false,
    title: 'Loading title...', 
    modal: true,
    width: 500,
    height: 400
});
});
function readMore(id,title,cat,desc,post,auth) { 
//alert(id +","+ title +","+ cat +","+ desc +","+ post +","+ auth); 
var $dialog = $('#dialogbox').html('Category: '+ cat +'<br/>'+ desc +'<br/>---------------------------------<br/>Posted by: '+ auth +'<br/>' + post);
$dialog.dialog('open');
$dialog.dialog("option","title",title);
} 

我如何拉动阅读更多:

            <?php
                require('config/dbconfig.php');
                $query = "SELECT * FROM news ORDER BY id DESC LIMIT 4";
                if ($stmt = $mysqli->prepare($query)) {
                    /* execute statement */
                    $stmt->execute();

                    /* bind result variables */
                    $stmt->bind_result($idn, $titlen, $categoryn, $descn, $postdaten, $authorn);

                    /* fetch values */
                    while ($stmt->fetch()) {
                        //echo 'id: '. $id .' title: '. $title;
                        echo "<table border='0'>";
                        $shortDescLengthn = strlen($descn);
                        if ($shortDescLengthn > 106) {
                            $sDCutn = 106 - $shortDescLengthn;
                            $shortDescn = substr($descn, 0, $sDCutn);
                        } else {
                            $shortDescn = $descn;
                        }
                        echo "<h1>$titlen</h1>"; 
                        echo "<tr><td>$shortDescn...</td></tr>"; 
                        echo '<tr><td><a href="javascript:void(0);" onclick="' 
                        . 'readMore(' . $idn . ',' . htmlspecialchars(json_encode($titlen)) . ',' 
                        . htmlspecialchars(json_encode($categoryn)) . ',' 
                        . htmlspecialchars(json_encode($descn)) . ',' . htmlspecialchars(json_encode($postdaten)) . ',' 
                        . htmlspecialchars(json_encode($authorn)) . ')">Read More</a></td></tr>'; 
                        echo "<tr><td>Written by: $authorn</td></tr>"; 
                        echo '<tr><td><img src="images/hardcore-games-newsbar-border.png" width="468px" /></td></tr>'; 
                    }
                    echo "</table><br />";

                    /* close statement */
                    $stmt->close();
                }

                /* close connection */
                $mysqli->close();
            ?>

再说一次,基本上我需要看看为什么在我点击一个链接后这不起作用,以及它如何能够更好地跨浏览器和向后浏览器兼容。

4

1 回答 1

0

我所要做的就是添加:

$('#bodycontent').empty();

在加载()之前,它适用于我迄今为止尝试过的每台计算机。我猜在加载新的 html 之前需要清空 div,所以回去它会阻止 js 等从 getscript 和搞砸。也只保留了只有 home.php 才需要加载的单个 js 文件,并将其他所有内容放在索引页面中(就像它本来应该那样)。

于 2012-08-03T03:18:27.727 回答