php - jquery 点击显示 div

标签 php jquery html css

我有一个 php 页面,它将解析一些数据并最终得到一个数据数组。我想将每个键放在其自己的 div 中,以便用户可以单击单独的导航面板并显示正确的 div。

 $array = array('userId'=>'bob1','firstName'=>'bob','lastName'=>'Jones');

我有一个处理点击的小 jquery。

 $('.nav').click(function()
  {
            $('.userModule').hide();
            var id = $(this).attr('id');
            $('#'+id).show();
 });

所以我交互并设置所有字段:

  $data = "";
  foreach ($array as $key => $value)
  {
      $data .= "<div id='" . $key . "' class='userModule'>";
      $data .= $key . "," . $value;
      $data .= "</div>";
    $navMenu[] = $key;
   }

还有我的小导航面板:

 echo "<div id='navMenu'>\n";
 foreach ($navMenu as $v)
 {
    echo "<a href='#' id='" . $v . "' class='nav'>" . $v . "</a><br>\n";
 }
 echo "</div>\n";

然后:

 echo $data;

我这样做是因为我希望导航菜单位于左侧,而 div 位于中间。我通过设置 css navMenu 来做到这一点:

 #navMenu{
    float:left;
    clear:both;
  }
  .userModule{
    float:left;
  }

我遇到的问题是,如果我点击一个链接,什么也没有发生。我可以通过回显 foreach 循环中的数据而不是将其设置为 $data 来解决这个问题。问题是导航菜单不会在数据的左边....

最佳答案

多次使用 id 不好。 试试这个:

HTML :

<a href='#' data-id='" . $v . "' class='nav'>" . $v . "</a>

js:

$('body').on('click', '.nav',  function() {
    $('.userModule').hide();
    var id = $(this).data('id');
    $('#'+id).show();
});

关于php - jquery 点击显示 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21463680/

相关文章:

javascript - 在 Click 事件上获取从 PHP 传递到 JS 的变量,返回所有元素变量,而不仅仅是被单击的变量

php - laravel 不使用已发布的 View

php - 我可以将我的 PHP 脚本编译成执行速度更快的格式吗?

javascript - 如果 input2 为空,则从 input1 复制值?

java - 如何将 JSON 数组从 Struts 2 操作类传递到 jQuery?

javascript - window.load 和 document.ready 的替代方案

css - 在固定元素中添加此小部件 - 位置错误?

html - Bootstrap设计容器-不同颜色的流体

php - 关于 Lighttpd for Windows 的问题

html - 有序列表 Html 页面选项卡以在同一页面中打开网页