javascript - 多次使用展开/折叠功能

标签 javascript jquery

我使用 jQuery 构建了一个展开/折叠插件。当我将它与一个 div 一起使用时,它工作得很好。 但当我尝试将它与另一个 div 一起使用时,它不起作用。我在这里做错了什么?

这是我应用插件的 HTML 代码:

<div class="col">
    <div class="tabs ui-tabs ui-widget ui-widget-content ui-corner-all" id="box-resize">
        <div id="ui-tabs-1" class="ui-tabs-panel ui-widget-content ui-corner-bottom" aria-live="polite" aria-labelledby="ui-id-13" role="tabpanel" aria-expanded="true" aria-hidden="false">
            <div class="item">
                <ul class="item_list">
                    <li>Singapore</li>
                    <li>Singapore</li>
                    <li class="last_item_list">12 hours ago</li>
                </ul>
            </div>
        </div>
        <div id="ui-tabs-2" class="ui-tabs-panel ui-widget-content ui-corner-bottom" aria-live="polite" aria-labelledby="ui-id-14" role="tabpanel" style="display: none;" aria-expanded="false" aria-hidden="true"></div>
    </div>
    <div class="green_end mapexpand">
        <div class="column">
            <div class="mapexpand" id="mapresize">
                <span>Expand</span>
            </div>
        </div>
    </div>                        
</div>
<div class="col">
    <div class="tabs ui-tabs ui-widget ui-widget-content ui-corner-all" id="box-resize">
        <div id="ui-tabs-1" class="ui-tabs-panel ui-widget-content ui-corner-bottom" aria-live="polite" aria-labelledby="ui-id-13" role="tabpanel" aria-expanded="true" aria-hidden="false">
            <div class="item">
                <ul class="item_list">
                    <li>Singapore</li>
                    <li>Singapore</li>
                    <li class="last_item_list">12 hours ago</li>
                </ul>
                <a href="#"><img class="edit" src="images/icons/pencil.png"></a>
            </div>
        </div>
        <div id="ui-tabs-2" class="ui-tabs-panel ui-widget-content ui-corner-bottom" aria-live="polite" aria-labelledby="ui-id-14" role="tabpanel" style="display: none;" aria-expanded="false" aria-hidden="true"></div>
    </div>
    <div class="green_end mapexpand">
        <div class="column">
            <div class="mapexpand" id="mapresize">
                <span>Expand</span>
            </div>
        </div>
    </div>                        
</div>

这是实际的插件:

var mr=$('#mapresize');
mr.click(function() {
    if ($(this).is('.mapexpand')) { 
        $(this).removeClass('mapexpand').addClass('mapcollapse');
        $("#box-resize").animate({
            height: '100%'
        }, 500, function() {
            mr.find('span').text('collapse');
        });
    } else {
        $(this).removeClass('mapcollapse').addClass('mapexpand');
        $("#box-resize").animate({
            height: '150px'
        }, 500, function() {
            mr.find('span').text('expand');
        });
    }
    return false;
});

最佳答案

ID 必须是 unique .您对两个div使用了相同的id。最好使用class names而不是 ID

ui-tabs-1 , ui-tabs-2,mapresize...所有这些 ID 您都使用过 2 次

关于javascript - 多次使用展开/折叠功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16813507/

相关文章:

javascript - jQuery的$如何既是函数又是对象?

javascript - 如何求2个矩阵的平均值?

javascript - Handsontable:事件触发器上的setDataAtCell

asp.net - 使用 jQuery 调用远程 ASP.NET WebService

javascript - 具有特定 ID 的 Jquery .load 元素?

javascript - 当通过 JS 修改 <div> 背景时,CSS 动画停止工作

javascript - 删除所有 DOM 元素中隐藏的属性,除了给出索引的元素使用 Javascript 函数不起作用

javascript - 如何将字符串转换为 JSON 对象

javascript - onChange 事件在颜色类型输入中不起作用

javascript - 网站安全 - 被这个 JS 脚本攻击