Jquery 显示/隐藏插件在单击时显示但不隐藏内容?
我正在使用插件。当我点击链接以显示隐藏的div时,它工作正常,但当我再次点击它时,它无法关闭。另外,我将它用于多个div,它再次切换得很好(也就是说,当我单击另一个链接时,当前div被替换为我刚才单击的隐藏div),但它无法关闭 以下是我正在使用的脚本: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
(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()