PHP中的CMS - 如何将href定位到<div>?

时间:2015-05-16 10:28:34

标签: php jquery html href target

我正在学习PHP如何工作,但同时我必须重新设计自定义CMS。

CMS是用PHP编写的,我使用CSS重新设置了默认菜单并添加了侧滑效果。但是现在,当我点击菜单中的链接时,我需要打开这个侧面板。我认为,最简单的方法是阻止页面重新加载=在页面内容部分(<div id="content"></div>)中打开菜单链接。但是因为在源代码中,有很多函数,变量等,我真的需要你的帮助,如何继续。

/Admin/index.php - 此处使用函数调用菜单部分(放置在单独的文件中)中的内容

AdminLib / CSS / style.css - 包含侧边菜单的样式

AdminLib / Include / menu.php - 这里定义了一个侧边菜单(ul,li)

/Admin/index.php

...
...
...
<body>
<?php if ($page != 'login') { 
    $menu_obj = new AdminMenu(dirname(__FILE__).'/Tabdefs/');

    echo $menu_obj->GetHtml();


?>
    <div class="site-wrap">
<?php
    }
    ContContent();
?>
    </div>
...
...
...

AdminLib /包含/ menu.php

...
...
...
//vrati html pro svoje menu
public function GetHtml() {
$html = '<ul class="navigation">';

$html .= $this->GetHtmlRecursive($this->menu_def);
$html .= '</ul>';
$html .= '<input type="checkbox" id="nav-trigger" class="nav-trigger" /><label for="nav-trigger"></label>';

return $html;
}

/********** PRIVATE ***********/
//vrati html pro vsechny polozky menu v poli $arr; Pokud tam nejaka ma sub, tak se vola rekurzivne
private function GetHtmlRecursive($arr) {
    $html = '';
    foreach ($arr AS $item) {
        //neukazovane polozky rovnou preskakuju
        if ($item['show'] != 'Y')   
            continue;

    //ted jestli mam podpolozky, tak rekurzujeme    
    if (isset($item['sub'])) {
        $html .= '<li class="nav-item"><a href="#">'.$item['nazev'].'</a>'.
            '<ul class="nav-item">';
        $html .= $this->GetHtmlRecursive($item['sub']);
        $html .= '</ul></li>';
    }
    else {
         //pokud podpolozky nemam, tak vypisu normalni polozku
        $html .= '<li class="nav-item"><a href="'.$item['url'].'">'.$item['nazev'].'</a></li>';
    }
} //foreach pres polozky $arr

return $html;
}
...
...
...

我尝试整合这样的东西 - 使用jQuery脚本(How to target the href to div - JsFiddle上的第二和第三个链接)到我的源代码中,但我需要帮助实现 - 我无法使它工作。

1 个答案:

答案 0 :(得分:1)

您可以始终使用锚标记,而不是获取指向特定div的链接。他们使用a标签转到页面上的相关点。

将创建一个锚标记,如下所示:

<a name="location1"></a>

要链接到包含a标签的标签,您可以执行以下操作:

<a href="#location1">Link Text</a>

该链接将带您进入页面上的锚点位置。

如果您真的想通过div ID来实现它并使用jQuery(这将使您能够滚动到它而不是直接跳转),那么如果您创建链接到以下内容:

<a href="#" onclick="scrollToLocation('location1')">Link Text</a>

如果页面有div:

<div id="location1">Contrent of the div</div>

并且您的页面具有该功能(在页面上或在外部文件中):

function scrollToLocation(location_id) {
    $('body').animate({
        scrollTop: $('#' + location_id).offset().top
    }, 500);
}

以下问题中有关于Stack Overflow的更多信息: