【问题标题】:Using location.hash to activate jquery toggle/slideToggle使用 location.hash 激活 jquery toggle/slideToggle
【发布时间】:2011-07-14 21:43:04
【问题描述】:

我有一个使用 jquery 切换和 slideToggle 的列表列表,这样当单击项目时,解释性文本会滑出,并且 h3 上的类会发生变化。项目的 html 如下所示:

<li><h3><a href="#" target="_blank" id="feature1" name="feature1">What do I know about javascript?</a></h3>
<div class="check_list_wrap feature1">Not a lot, apparently.</div>
</li>

我包含了 jquery 文件,然后将其写在标题中:

<script type="text/javascript">
    $(function() {  
    $("#listfeatures h3 a").toggle(function(){
        $(this).addClass("check_list_selected");
    }, function () {
        $(this).removeClass("check_list_selected");
    });
        $("#listfeatures h3 a").click(function() {
            $("."+this.id).slideToggle('fast');
                return false;
        });
    });    
</script>

这样,如果单击链接,它将切换 h3 的类更改、display:block/display:inline 和滑出 div。它工作正常。

但是,现在我想要它,以便使用 index.php#feature1 之类的 url,该列表项的切换将被激活,就好像它已被单击一样。我知道我需要使用 location.hash 但我不知道该怎么做。我应该从哪里开始?

【问题讨论】:

  • 我很确定您需要响应onload 事件,以便新的点击会注册一些内容供您的脚本响应。诀窍是页面并没有真正重新加载,但您仍然会收到事件。

标签: javascript jquery location toggle slidetoggle


【解决方案1】:

location.hash 包含 URL 中的所有内容,包括井号 (#) 标记和之后的所有内容。因此,如果转到 index.php#feature1 并希望 id 为“feature1”的 div 在加载时显示,您可以这样做

$(document).ready(function() {
    if(location.hash) {
        var id = location.hash.slice(1);    //Get rid of the # mark
        var elementToShow = $("#" + id);    //Save local reference
        if(elementToShow.length) {                   //Check if the element exists
            elementToShow.slideToggle('fast');       //Show the element
            elementToShow.addClass("check_list_selected");    //Add class to element (the link)
        }
    }
});

【讨论】:

  • 这工作正常,只是 h3 上的类没有改变。我该怎么做?
  • 只需在 if 的正文中添加 $("."+id).addClass("check_list_selected");。我会编辑答案。
  • 这改变了 check_list_wrap 上的类,我正在尝试改变它上面的 h3 上的类
  • 如果我添加这个,我会全部更改:$("#listfeatures h3 a").addClass("check_list_selected");
  • 我不知道check_list_wrap 是什么,您需要包含HTML。我还更新了答案以修正一些错别字。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-17
  • 1970-01-01
  • 2013-07-23
  • 1970-01-01
  • 2010-11-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多