【问题标题】:CMS in PHP - How to target href to <div>?PHP 中的 CMS - 如何将 href 定位到 <div>?
【发布时间】:2015-07-28 06:19:38
【问题描述】:

我正在学习 PHP 的工作原理,但同时我必须重新设计一个自定义 CMS。

CMS 是用 PHP 编写的,我使用 CSS 重新设置了默认菜单的样式并添加了侧滑效果。但是现在,当我单击菜单中的链接时,我需要保持此侧面板处于打开状态。我认为,最简单的方法是防止页面重新加载 = 在页面内容部分 (&lt;div id="content"&gt;&lt;/div&gt;) 中打开菜单链接。但是因为在一个源代码中,有很多函数,变量等,我真的需要你的帮助,如何进行。

/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/Include/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 上的第二和第三个链接)到我的源代码中,但我需要帮助来实现 - 我无法让它工作。

【问题讨论】:

    标签: php jquery html href target


    【解决方案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 的信息:

    【讨论】:

      猜你喜欢
      • 2014-02-15
      • 1970-01-01
      • 2023-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-18
      相关资源
      最近更新 更多