【问题标题】:Show li on page load在页面加载时显示 li
【发布时间】:2017-03-01 22:17:00
【问题描述】:

我有

    <nav>
        <ul class="sel">
              <li>
                  <a href="#LINK1" data-title="A">A</a>
              </li>
              <li>
                  <a href="#LINK2"  data-title="B">B</a>
              </li>
              <li>
                  <a href="#LINK3" data-title="C">C</a>
            </li>
        </ul>
    </nav>
</header>

当页面加载时,我希望选择并显示带有&lt;a href='#LINK1' data-title="A"&gt;A&lt;/a&gt;&lt;li&gt;。我尝试了多种 jQuery 解决方案,但都没有奏效。

是否可以在页面加载时显示包含此特定 &lt;a&gt;&lt;li&gt;

我有很多解决方案,例如:

Using jQuery to 'click' a li element

Click trigger on page load (UL > LI)

【问题讨论】:

  • 你尝试过哪些jQuery解决方案?
  • 你可以用纯 CSS 做到这一点

标签: javascript jquery html css


【解决方案1】:

您的 HTML 无效; href 属性为要导航到的 &lt;a&gt; 元素定义了一个目标 url,但您使用它来定义您的 id。相反,应将 id 应用于您尝试隐藏/显示的 &lt;li&gt; 元素。看看下面的例子,如果点击其他元素,它会隐藏第一个 &lt;li&gt; 元素:

var display = function(pageHide,pageShow) {
  var current = "#DATA" + pageShow.toString();
  $(current).show();
  var last = "#DATA" + pageHide.toString();
  $(last).hide();
}; // hide/show pages.

$(document).ready(function() {
  var page = 1;         // set default page
  $('#DATA2').hide();   // hide others
  $('#DATA3').hide();
  $('#LINK1').click(function() {
    display(page,1);
    page = 1;
  });
  $('#LINK2').click(function() {
    display(page,2);
    page = 2;
  });
  $('#LINK3').click(function() {
    display(page,3);
    page = 3;
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav>
  <ul class="sel">
    <li id="LINK1">
      <a data-title="A" href="#">A</a>
    </li>
    <li id="LINK2">
      <a data-title="B" href="#">B</a>
    </li>
    <li id="LINK3">
      <a data-title="C" href="#">C</a>
    </li>
  </ul>
  <p id="DATA1">main</p>
  <p id="DATA2">graphs</p>
  <p id="DATA3">notes</p>
</nav>
  • @MikeElJackson 请查看编辑后的答案。这能回答你的问题吗?
  • 所以 A、B 和 C 是仪表板上的选项卡。 A 对应主页,B 对应图表,C 对应注释部分。加载网页时,我希望显示主页面 A。但是,当我单击 B 或 C 的选项卡时,我希望它切换到相应的图表或注释部分。但是,当我再次单击 A 选项卡时,我希望显示主页。我的选项卡在彼此之间切换,但我无法让 A 选项卡在页面加载时显示。您上面的代码完全删除了Borc时完全删除,但我正在尝试选择一个然后切换到B,C,然后返回 span>
  • 现在当我加载网页时既没有 A 也没有 B 也没有 C 显示
  • @MikeElJackson 好的,我对您要完成的工作有了基本的了解……看看新代码 sn-p。使用这种方法只有一个缺点,那就是如果你按两次链接会隐藏当前页面,但这是一个开始。这是你要找的吗?
  • 【解决方案2】:

    您仍然可以通过 data-title 使用伪选择器并做任何您想做的事情。我也想做类似的事情:

    $('ul li').filter(function(index){});

    $(function() {
      $('ul li a[data-title=A]').each(function() {
        $(this).parent().css('background-color', '#0000ff');
      });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <nav>
      <ul class="sel">
        <li>
          <a href="#LINK1" data-title="A">A</a>
        </li>
        <li>
          <a href="#LINK2" data-title="B">B</a>
        </li>
        <li>
          <a href="#LINK3" data-title="C">C</a>
        </li>
      </ul>
    </nav>

    【讨论】:

    • 嗯这对我不起作用我试过 .css('display','block')
    • 所有这些都已经可见,为什么要将显示属性设置为阻止?你能把你的代码放在提琴手里给我看吗?
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签