【问题标题】:CSS/jQuery- how to change the css of a class with toggleCSS/jQuery-如何使用切换更改类的 css
【发布时间】:2015-02-21 14:14:41
【问题描述】:

我创建了一个列表视图,一旦单击“.toggle-post”就会切换。 中的 div 内有一个图标。该图标是一个箭头,一旦切换列表视图,它就会变为另一个图标。

   $('[data-postas]').click(function changeHeader(event){
        var element = $(event.srcElement);
        $('.toggle-post').text(element.text());
        $('#postAs').val(element.attr('data-postas'));
        if(element.attr('data-company')){
                $('#company').val(element.attr('data-company'));

        }

        $('.icon-cheack').remove();
        element.append('<i class="icon-cheack fright"></i>');
          setTimeout(function() {
        $(".ul-post").toggle();
        }, 500);
        $('#dropdownIcon').addClass('ui-icon-dropdown');
        })


$(".toggle-post").click(function(){
         $(".ul-post").toggle();


  });

 <fieldset style="display: inline" >
                <div style="display: inline">
                <div class="text-light" style="float: left" >Post as: </div>
                <div class="link toggle-post" style="float: right" >Yourself<span id="dropdownIcon" class="ui-icon-dropdown"></span></div>
                </div>
                %{--<div data-role="collapsible"  data-collapsed-icon="carat-d" data-expanded-icon="carat-u" data-iconpos="right">--}%
                    %{--<h3 id="listHeader">Yourself</h3>--}%
                    <ul class="ul-post" data-role="listview" data-inset="false" style="width: 240%; display:none">
                        <li data-postas="0">Yourself</li>
                        <g:if test="${companyList?.size() > 1}">
                            <li style="background-color: #CCCCCC">As your company</li>
                            <g:each var="company" in="${companyList}">
                                <li data-postas="1" value="${company?.id}" id="${company?.companyname}" data-company="${company?.id}">${company?.companyname}</li>
                            </g:each>
                         </g:if>
                        <g:else>
                            <input type="hidden" value="${companyList[0].id}" name="company"/>
                        </g:else>

                    </ul>

            </fieldset>

【问题讨论】:

    标签: jquery css icons toggle


    【解决方案1】:

    根据 jQuery 文档,toggle() 将:

    显示或隐藏匹配的元素。

    所以,基本上,toggle() 将是错误的类方法。您需要改用toggleClass()

    $(".toggle-post").click(function(){
        $(".ul-post").toggleClass( "someClass" );
    });
    

    根据您的编辑:

    #myIcon {
        background: url("some/url/icon.png") no-repeat;
    }
    #myIcon.someClass {
        background: url("some/different/url/icon.png") no-repeat;
    }
    

    那么你就可以打开和关闭“someClass”类,然后ta da!

    【讨论】:

    • 但是如何每次都替换为第二个图标?加上在切换的第一种情况下应该如何完成(我编辑了问题)?
    猜你喜欢
    • 1970-01-01
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多