简体   繁体   English

jQuery单击仅一次触发一次

[英]Jquery click only work once on toggle

I am using the following script to show a different background depending on the state of the div. 我正在使用以下脚本根据div的状态显示不同的背景。

When it is not expanded it shows the "plus (+)" sign, while when is expanded it does not have background image (does not shows anything). 不展开时显示“加号(+)”,展开时不显示背景图像(不显示任何内容)。

The problem there is that only work once, and I dont know why. 那里的问题是只能工作一次,而我不知道为什么。

Here's the code: 这是代码:

EDIT (added HTML)! 编辑(添加HTML)!

HTML: HTML:

<body>
    <section>
        <div class="wrapper wf">
            <ul id="Parks" class="just">
<!--------------- PRODUCT -->
                <li class="mix" href="#therapy_vital" >
                <div class="meta name">
                        <div class="img_wrapper">
                            <img src="images/spa/masaje/.jpg" onload="imgLoaded(this)"/>
                        </div>
                        <div class="titles">
                            <h2>TITLE</h2>
                        </div>
                    </div>
                    <!-- Expand -->
                    <div href="#therapy_vital" class="nav-toggle"></div>
                    <div id="therapy_vital" style="display:none">
                <article class="ac-small">
                 SUBCONTENT<br><br><br><br><br><br><br><br><br><br><br><br>
                 </article>
                </div>
                </li> 
<!--------------- PRODUCT -->
                <li class="mix" href="#therapy_natur" >
                <div class="meta name">
                        <div class="img_wrapper">
                            <img src="images/spa/masaje/.jpg" onload="imgLoaded(this)"/>
                        </div>
                        <div class="titles">
                            <h2>TITLE</h2>
                        </div>
                    </div>
                    <!-- Expand -->
                    <div href="#therapy_natur" class="nav-toggle"></div>
                    <div id="therapy_natur" style="display:none">
                <article class="ac-small">
                 SUBCONTENT<br><br><br><br><br><br><br><br><br><br><br><br>
                 </article>
                </div>
                            </li> 
</ul>
</div>                      
        </section>
    </body>

JS: JS:

$(document).ready(function() {
    $('.meta').click(function() {
        $(this).css('background', 'none');
    });
    $('.mix').click(function() {
        var collapse_content_selector = $(this).attr('href');
        var toggle = $(this);
        $('.meta').click(function() {
            $(this).css('background', 'url(images/arrow_down.png) no-repeat scroll 95% 97% transparent');
        });
        $(collapse_content_selector).toggle(function() {});
    });
});

(The .mix value makes the Div expands, and the .meta class switch to different background). (.mix值使Div扩展,.meta类切换到不同的背景)。

Any clue? 有什么线索吗?

EDIT2 (Live example) EDIT2(实时示例)

http://anubisfiles.com/test/test.html http://anubisfiles.com/test/test.html

(Due I am not really familiar with jsFiddle, I prefer to show you it hosted on a website). (由于我对jsFiddle并不是很熟悉,我更愿意向您展示它托管在网站上)。

Thanks! 谢谢!

Use on function to bind events, 使用on函数绑定事件,

$('element').on('click', function() {

});
$('.mix').click(function() {
        var collapse_content_selector = $(this).attr('href');
        var toggle = $(this);

        $(this).find('.meta').css('background', 'url(images/arrow_down.png) no-repeat scroll 95% 97% transparent');
        $(collapse_content_selector).toggle(function() {});
    });

Try this 尝试这个

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM