首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jquery获取的url参数展开手风琴菜单,并将attr添加到所需的类中。

使用jquery获取的url参数展开手风琴菜单,并将attr添加到所需的类中。
EN

Stack Overflow用户
提问于 2015-01-12 20:25:16
回答 2查看 135关注 0票数 0

晚上好,各位,我在更改div样式属性方面遇到了麻烦。所以,我有下面的代码: URL: www.example.com"/?page_id=410&ai1ec=action~oneday&post=289的示例

代码语言:javascript
复制
    $( document ).ready(function() {

function getUrlParameter(sParam)
{
    var sPageURL = window.location.search.substring(1);
    var sURLVariables = sPageURL.split('&');
    console.log(sURLVariables);

    for (var i = 0; i < sURLVariables.length; i++) 
    {
        var sParameterName = sURLVariables[i].split('=');
        if (sParameterName[0] == sParam) 
        {
            return sParameterName[1];
        }
    }

}

向下部分用于检查和添加样式属性。

代码语言:javascript
复制
    var blog = getUrlParameter('post');
console.log(blog);   
    var idx = 1;
    if ($('.ai1ec-event').hasClass('ai1ec-event-id-'+blog)){

    /*$('.ai1ec-event').addClass('ai1ec-expanded');*/
    $('.ai1ec-event-summary').eq(idx).attr('style','display:block');
    idx++;  
    }

});

我用它来扩展手风琴菜单,其中的邮政号码被选择,到目前为止,我已经做到了,但它只适用于第一手风琴(我现在有3,我计划把更多后,我修复)。

还有html代码:

代码语言:javascript
复制
<div class="ai1ec-date-events">
    <div class="ai1ec-event         ai1ec-event-id-290         ai1ec-event-instance-id-65">

        <div class="ai1ec-event-header"></div>
        <div class="ai1ec-event-summary " style="display: none;">
    </div>
</div>

<div class="ai1ec-date-events">
    <div class="ai1ec-event         ai1ec-event-id-289         ai1ec-event-instance-id-66">

        <div class="ai1ec-event-header"></div>
        <div class="ai1ec-event-summary " style="display: block;">
    </div>
</div>

<div class="ai1ec-date-events">
    <div class="ai1ec-event         ai1ec-event-id-288         ai1ec-event-instance-id-67">

        <div class="ai1ec-event-header"></div>
        <div class="ai1ec-event-summary " style="display: none;">
    </div>

因此,我需要更改ai1ec-事件摘要样式,以显示:块;但我只能完成一个手风琴。有人有建议怎么做吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-12 20:32:11

将您的函数修改为:

代码语言:javascript
复制
if ($('.ai1ec-event').hasClass('ai1ec-event-id-'+blog)) {
    $('.ai1ec-event-id-'+blog+' .ai1ec-event-summary').attr('style','display:block');
}

因为您有博客id,所以不需要跟踪面板的索引。

票数 0
EN

Stack Overflow用户

发布于 2015-01-12 20:42:10

首先,您应该只有(1)包装器元素并删除类名:

代码语言:javascript
复制
<div class="ai1ec-date-events">
    <div class="ai1ec-event" data-id="290" data-instance="65">
        <div class="ai1ec-event-header"></div>
        <div class="ai1ec-event-summary"></div>
    </div>
    ....
    ....
</div>

CSS

代码语言:javascript
复制
.ai1ec-event-summary {
   display: none;
   margin: 2em 0; /* or whatever */
}

jQuery

代码语言:javascript
复制
// get the post id
// find the correct accordion with the data attribute
// hide other accordions (in the event that you can open them by clicking something).
// set 'active' class to open accordion
$(function () {
     var postId = getParameterByName('post');
     var $div = $('.ai1ec-date-events').find('.ai1ec-event[data-id="' + postId + '"]').find('div:first');

     if (!$div.hasClass('active')) {
         $div.closest('.ai1ec-date-events')
             .find('.active')
             .removeClass('active')
             .slideUp();

         $div.addClass('active').slideDown();
     }
});


function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27910180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档