1

我实际上并不知道如何表达问题标题,但这里是描述。假设我正在使用 jQuery 来显示/隐藏ul堆叠在一起的 s(绝对定位)。例如:

<ul id="one">
  <li>blah</li>
  <li>blah2</li>
</ul>

<ul id="two">
  <li>blah</li>
  <li>blah2</li>
</ul>

我有一个控制器按钮,当按下它时,只需更改这些uls 的 z-index。控制器按钮实际上就是:

<a href="#" id="mybutton">My button</a>

使用 jQuery 代码:(我正在使用 jQuery 循环插件)

$('#mybutton').click(function() { 
  // check which ul is currently shown
  // change z-index, so that the next ul is to be shown
});

问题:

在我的站点中,我有几个要指向第二个 ul的页面,这样当单击时,它会将它们带到包含所有uls 的页面,但只会显示第二个。如果该人进入该页面,首先ul显示默认值,然后单击“下一步”继续到下一个,这将是相同的ul。我只是想知道是否可以避免按“下一步”,而只是将用户直接带到页面并显示第二个ul

4

2 回答 2

1

如果我对您的理解正确,也许您可​​以通过每页具有唯一 ID 的页面换行来完成此操作?您可以使用 JS 或服务器端逻辑交换 id,具体取决于您要执行的操作。

<div id="page-one">
    <ul id="one">
      <li>blah</li>
      <li>blah2</li>
    </ul>

    <ul id="two">
      <li>blah</li>
      <li>blah2</li>
    </ul>
</div>

那么你的CSS将是#page-one #one { display:block }; #page-two #one { display : none };等。

于 2012-09-15T14:05:17.933 回答
1

我认为您可以使用 URL 中的井号标签。然后,您可以编写这样的 if 语句:

 if(location.hash === "#2"){
     $("#one").hide();
 }else{
     $("#two").hide();
 }

或者直接作为复制粘贴示例:

<html>
<script src="http:////ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script>
$(function(){
    if(location.hash === "#2"){
        $("#one").hide();
    }else{
        $("#two").hide();
    }
    $('#mybutton').click(function(e) { 
        $("ul").toggle(); //quick n dirty! only works with 2 lists :)
        e.preventDefault();
    });
});
</script>
<body>
<a href="#" id="mybutton">My button</a>

<ul id="one">
  <li>First Item!</li>
  <li>blah</li>
  <li>blah2</li>
</ul>

<ul id="two">
  <li>Second Item!</li>
  <li>blah</li>
  <li>blah2</li>
</ul>

<a href="#2">To second page (you might have to refresh, notice the #2 at the end of the url!)</a>
​&lt;/body>
</html>

另请注意,我插入了一个e.preventDefault();at#mybutton的单击侦听器,以防止 URL 在单击时变回。

于 2012-09-15T14:21:11.337 回答