dongzu3511 2012-12-06 14:07
浏览 22

将jquery事件从一个php页面维护到另一个php页面

I am having this situation: - having a php page - having a jQuery script that collapses a menu - clicking on one of the collapsed elements to load another page by passing variable(s) in php

Problem: - jQuery script reloads too and cancels my previous choice.

Here is an example. I click on "Menu", jQuery script acts on "collapser" but when I click on the "Fish" link (or other), I got the page displayed but the menu will not be shown as collapsed.

What I want to achieve: - to keep the menu collapsed while moving from one page to another

here is a php code sample.

echo rightMenu();
function rightMenu(){

    $r  = '';

    $r .= '<ul id="collapser"><li>Menu<ul>';
    $r .= '<li><a href="main.php?show=page1">Fish</a></li>';
    $r .= '<li><a href="main.php?show=page2">Vegetables</a></li>';
    $r .= '<li><a href="main.php?show=page3">Meat</a></li></ul>';
    $r .= '</li></ul>';

    return $r;
};

Thank you, Myriam

  • 写回答

2条回答 默认 最新

  • duanliao5995 2012-12-06 14:18
    关注

    When collapse is clicked, you can send an ajax request that records a session variable of some sort that indicates collapse:

    //Your collapser click function
    //record hidden status in data
    $("#collapser").click(function () {
       if ($(this).data('hidden')) {
          $(this).slideDown().data('hidden', false);
       }
       else {
          $(this).slideUp().data('hidden', true);
       }
       //record hidden (collapsed) status on the server
       $.post('/record-collapser-hide.php', {'hidden': $(this).data('hidden')});
    });
    
    //On initial page load, collapse if #autocollapse is in the DOM
    //Added by PHP code below
    if ($("#autocollapse").length) {
       $("#collapser").data('hidden', false).click();
    }
    
    
    //--- record-collapser-hide.php ---
    session_start();
    $_SESSION['collapsercollapsed'] = isset($_POST['hidden']) ? $_POST['hidden'] : 0;
    
    
    //--- function rightMenu() ---
    ...
    $r .= '</li></ul>';
    if (isset($_SESSION['collapsercollapsed']) && $_SESSION['collapsercollapsed']) {
       $r .= "<span style='display: none' id='autocollapse'>&nbsp;</span>";
    }
    

    NOTE: This code will most likely not work as-is, but you should be able to follow the basic idea.

    评论

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值