Jquery 显示/隐藏插件在单击时显示但不隐藏内容?

Jquery 显示/隐藏插件在单击时显示但不隐藏内容?,jquery,html,jquery-plugins,hidden,Jquery,Html,Jquery Plugins,Hidden,我正在使用插件。当我点击链接以显示隐藏的div时,它工作正常,但当我再次点击它时,它无法关闭。另外,我将它用于多个div,它再次切换得很好(也就是说,当我单击另一个链接时,当前div被替换为我刚才单击的隐藏div),但它无法关闭 以下是我正在使用的脚本: (function ($) { $.fn.showHide = function (options) { //default vars for the plugin var defaults = { speed

我正在使用插件。当我点击链接以显示隐藏的div时,它工作正常,但当我再次点击它时,它无法关闭。另外,我将它用于多个div,它再次切换得很好(也就是说,当我单击另一个链接时,当前div被替换为我刚才单击的隐藏div),但它无法关闭

以下是我正在使用的脚本:

(function ($) {
$.fn.showHide = function (options) {

    //default vars for the plugin
    var defaults = {
        speed: 1000,
        easing: '',
        changeText: 0,
        showText: 'Show',
        hideText: 'Hide'

    };
    var options = $.extend(defaults, options);

    $(this).click(function () { 

         $('.toggleDiv').slideUp(options.speed, options.easing);    
         // this var stores which button you've clicked
         var toggleClick = $(this);
         // this reads the rel attribute of the button to determine which div id to toggle
         var toggleDiv = $(this).attr('data-link');
         // here we toggle show/hide the correct div at the right speed and using which easing effect
         $(toggleDiv).slideToggle(options.speed, options.easing, function() {
         // this only fires once the animation is completed
         if(options.changeText==1){
         $(toggleDiv).is(":visible") ? toggleClick.text(options.hideText) : toggleClick.text(options.showText);
         }
          });

      return false;

    });

};
})(jQuery);
我的索引中包含的脚本:

$(document).ready(function(){
$('.show_hide').showHide({           
    speed: 1000, 
    easing: '',
    changeText: 0, 
    showText: 'View',
    hideText: 'Close'

}); 
});
和我的HTML:

<a href="#" class="show_hide" data-link="#hiddencontent"> Open hidden content </a>
<div id="hiddencontent" class="toggleDiv" style="display: none;"> hello </div>

你好
有人知道怎么解决这个问题吗?我不知道这是否相关,但我正在内联内容中运行此功能。

尝试以下操作:

var toggleDiv = $(toggleClick.attr('data-link'));

像这样排除目标:

$('.toggleDiv').not(toggleDiv).slideUp(options.speed, options.easing);

试试:
$('.toggleDiv')。不是(这个).slideUp(options.speed,options.easing)也不工作。现在div相互重叠,没有一个接近。提供一个JSFIDLE来复制您的问题怎么样?很抱歉,我做了一次编辑,没有注意到您已经有了#登录,我只是从匹配的元素集中排除当前单击的元素目标,
$('.toggleDiv')
。基本上,您的代码是向上滑动已经打开的元素,然后向下滑动,因为在它上面调用了
slideToggle()