jquery - .toggle() 所有高度超过 99px 的 div

标签 jquery

我正在制作 Accordion 式效果,使用切换来扩展和收缩 div 的高度。

当用户切换 div 时,它的高度会扩展,我希望前一个 div 也能切换回来。 因此,我需要选择所有同级,但我只想定位已展开的 div,以再次缩小其高度。

我想使用一个函数来选择扩展的 div,如果高度超过 99 px,我认为这是仅选择扩展的 div 的最佳方法。

我哪里出错了?

我的代码。

$(function() {
     jQuery.fn.selectOpen = (function(){
         //(this).css('background-color', 'red');
                if ( $(this).height() > 99) {
                $(this).trigger(".toggle");
                }
                });
            }); 


$("#arrow_01").toggle(function(){
$("#arrow_01").attr('src','images/arrow_down.png');
    $("#expanding_box_01").animate({height: '100px',  }).siblings().selectOpen();
 }, function(){     
   $('#arrow_01').attr('src','images/arrow_right.png');
   $("#expanding_box_01").animate( {height: '27px' });
 });    

最佳答案

使用.each()遍历所有同级,并且您错误地使用.toggle作为事件名称,而它应该只是toggle,像这样:

jQuery.fn.selectOpen = function(){
         //(this).css('background-color', 'red');
         this.each(function() {
             if ( $(this).height() > 99) {
                 $(this).trigger("toggle");
             }
         });
 };

关于jquery - .toggle() 所有高度超过 99px 的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12786228/

相关文章:

jquery - 溢出内容延迟显示

jquery - 当窗口小于 900px 时,有没有办法只调用一次函数

javascript - 按两次转义键即可恢复旧值 - Internet Explorer

javascript - 降低 if/else 语句的复杂性?

javascript - 图像和文本的 Jquery 悬停问题

Php get_result() 和 fetch_assoc() 替代方案

javascript - 更改附加表行字段的名称 jQuery

javascript - jQuery 旋转画廊中的列表项

javascript - 如何检测文本框中某些文本的位置?

javascript - 使用 jQuery ui datepicker 格式化实际日期